我观察到只要编译器遇到如下的委托声明:
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);
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么virtual当类本身是一个sealed类时它会生成方法?
没有必要创造virtual方法,因为我们不能override正确吗?