【发布时间】:2018-02-02 12:10:51
【问题描述】:
我观察到,每当编译器遇到如下委托声明时:
public delegate string StringOperation(string myString);
然后编译器正在生成以下代码:
public sealed class StringOperation: System.MulticastDelegate
{
public StringOperation (object target, int method);
public virtual void Invoke(string myString);
public virtual IAsyncResult BeginInvoke(string myString,
AsyncCallback callback, object obj);
public virtual void EndInvoke(IAsyncResult result);
}
我的问题是,当类本身是sealed 类时,为什么它会生成virtual 方法?
创建virtual 方法没有意义,因为我们不能override 他们对吗?
【问题讨论】:
-
您是如何获得该代码的?
-
我读过以下文章:link。当我签入 ildasm 时,它显示了相同的密封和虚拟概念。