【问题标题】: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);
}
}
}