【发布时间】:2014-12-13 10:15:52
【问题描述】:
我想从静态类重写密封类的方法。
例如:
public class MyClass
{
public virtual void MyMethod()
{
Console.WriteLine("I'm MyMethod from MyClass");
}
}
public sealed class MySealedClass : MyClass
{
public override void MyMethod()
{
Console.WriteLine("I'm MyMethod from MySealedClass");
}
}
MyClass 有一个名为 MyMethod 的虚拟方法。
在密封类中,此方法已被 self 覆盖,我想通过此静态类为另一项工作再次编写该方法:
public static class ClassManager
{
public static void MyMethod(this MySealedClass msc)
{
Console.WriteLine("I'm MyMethod from ClassManager");
}
}
现在,我们调用 Program 类中的静态方法来运行它:
class Program
{
static void Main(string[] args)
{
new MySealedClass().MyMethod();
}
}
但是这个结果叫做 MySealedClass 方法而不是我的静态类方法的!!
我是来自 MySealedClass 的 MyMethod
请帮助我,如何通过静态类或其他方式更改密封类方法?
【问题讨论】:
标签: c# static overriding sealed