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 回答