实例C#的覆盖方法

时间:2013-10-31 14:24:05

标签: c# override instance

我已经编程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#中执行此操作?如果有,怎么样?

非常感谢!

1 个答案:

答案 0 :(得分: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);
        }
    }
}