小编Dev*_*hot的帖子

当内部类被密封时,为什么调用BeginInvoke和EndInvoke是虚拟的?

我观察到只要编译器遇到如下的委托声明:

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正确吗?

c# delegates

9
推荐指数
1
解决办法
99
查看次数

标签 统计

c# ×1

delegates ×1