【问题标题】:Overriding Method on Instance C# [duplicate]实例 C# 上的覆盖方法 [重复]
【发布时间】:2013-10-31 14:24:04
【问题描述】:

我已经使用 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# 中执行此操作?如果是,如何?

非常感谢!

【问题讨论】:

    标签: c# overriding instance


    【解决方案1】:

    您需要在 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);
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-21
      • 1970-01-01
      • 2012-07-19
      • 2012-05-09
      • 1970-01-01
      • 2021-12-02
      相关资源
      最近更新 更多