0

私は何年も Java をプログラミングしてきましたが、現在は C# を使用しています。オブジェクトのインスタンスを作成するときにC#で関数をオーバーライドすることは可能ですか? Java では、これを行うことができます。

View v = new View(this) {
    @Override
    protected void onDraw(Canvas canvas) {
        System.out.println("large view on draw called");
        super.onDraw(canvas);
    }
};

これは、オブジェクト v のメソッド「onDraw」がオーバーライドされることを意味します。C#でこれを行うことは可能ですか? はいの場合、どのように?

どうもありがとう!

4

1 に答える 1

0

C# で同じことを行う必要があります - 新しいバージョンのクラスを作成します - 元のコードがクラス 'TestClass' 内のメソッド 'testMethod' にあると仮定します。

internal class TestClass : SomeBaseClass
{
    internal virtual void testMethod()
    {
        View v = new ViewAnonymousInnerClassHelper();
    }

    private class ViewAnonymousInnerClassHelper : View
    {
        protected internal override void onDraw(Canvas canvas)
        {
            System.Console.WriteLine("large view on draw called");
            base.onDraw(canvas);
        }
    }
}
于 2013-10-31T14:53:18.650 に答える