C#中有关委托代理delegate

msnadair 2012-06-03 11:52:23
我今天反编译别人的组件,发现了有好些委托代理的声明(定义)没有放在类中,而是直接挂在命名空间下,同类是一个层次的。
查找之后发现,定义的委托在好些类中都有用到。

请问,此种DELEGATE是如何定义的? 不写在具体的某个类中,那应该写在哪? 谢谢!!!
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
仁者天下 2012-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

delegate 跟 class,struct 平级的,依据这个 delegate 的使用范围,如果是某个 class 事件用的,就写在 class 外面,但跟 class 同一文件里,如果是 class 内部的比如线程委托,就写在 class 内部,当然也可以新开文件单独写这些。
[/Quote]

楼上正解,补充一下,delegate 写在哪里与你实际调用该线程时的次序有关,按照其与class平级的原则进行调用
__天涯寻梦 2012-06-03
  • 打赏
  • 举报
回复
delegate 跟 class,struct 平级的,依据这个 delegate 的使用范围,如果是某个 class 事件用的,就写在 class 外面,但跟 class 同一文件里,如果是 class 内部的比如线程委托,就写在 class 内部,当然也可以新开文件单独写这些。
soars 2012-06-03
  • 打赏
  • 举报
回复
public delegate void TestEventHandler(object sender);
public event TestEventHandler testEvent;


obj.testEvent+= new testobj.TestEventHandler(obj);

使用的是 delegate 生成的TestEventHandler的对象来绑定事件
yanele 2012-06-03
  • 打赏
  • 举报
回复
类定义在哪里,DELEGATE就定义在哪里.换句话讲,将DELEGATE当作一个特殊的类就是了.
SocketUp 2012-06-03
  • 打赏
  • 举报
回复
和写在类中是一样的定义

110,571

社区成员

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

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

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