delegate 有构造函数吗?

细歌微语[堆码包工头] 2014-02-09 04:23:57
委托有构造函数吗?有类成员吗?有哪些呢?
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
leoleo4 2014-02-09
  • 打赏
  • 举报
回复
在创建一个delegate的时候只需要一行简单的语句就可以。比如:
public delegate void MyTaskEventHandler(int taskId);
但是当编译之后系统会自动为你的delegate生成一个Class, 这个Class会继承自System.MulticastDelegate。 所以委托的实质就是一个Class。只是你能做的就是使用delegate关键字去定义一个新的委托。
  • 打赏
  • 举报
回复
比如说我们写
public delegate void CompletedEventHandler(TestCaseBase sender);
编译之后使用工具看一下,可以发现编译出来的结果是(MSIL语言)
.class auto ansi sealed nested public CompletedEventHandler
    extends [mscorlib]System.MulticastDelegate
{
    .method public hidebysig specialname rtspecialname instance void .ctor(object 'object', native int 'method') runtime managed
    {
    }

    .method public hidebysig newslot virtual instance class [mscorlib]System.IAsyncResult BeginInvoke(class WpfEngine.TestCaseBase sender, class [mscorlib]System.AsyncCallback callback, object 'object') runtime managed
    {
    }

    .method public hidebysig newslot virtual instance void EndInvoke(class [mscorlib]System.IAsyncResult result) runtime managed
    {
    }

    .method public hidebysig newslot virtual instance void Invoke(class WpfEngine.TestCaseBase sender) runtime managed
    {
    }

}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧