首页新闻找找看学习计划

为啥delegate不是类成员

0
[已解决问题] 解决于 2008-07-13 21:24
RT~~但是事件可以是类成员?
沙加的主页 沙加 | 老鸟四级 | 园豆:3680
提问于:2008-07-10 13:12
< >
分享
最佳答案
0
貌似大家没有理解楼主的意思 :) 委托本质上也是类型 所以在类中声明delegate时: public class C { //定义delegate public delegate void Do(string msg); } 可看作是一个嵌套类型,所以不是类的成员(变量) 而event则可以看作“实例”,就像普通的类型实例一样 所以其身份是成员(变量) 不知这样能说明白吗?
Anders Cui | 小虾三级 |园豆:1570 | 2008-07-12 13:23
其他回答(4)
0
delegate同样可以是类成员。 [code] //定义delegate public delegate void Do(string msg); public class C{ //作为类成员变量声明 public Do _do; } [/code]
玉开 | 园豆:8822 (大侠五级) | 2008-07-10 13:18
0
为什么,很重要吗? C#中的事件处理实际上是一种具有特殊签名的delegate,象下面这个样子: public delegate void MyEventHandler(object sender, MyEventArgs e); 其中的两个参数,sender代表事件发送者,e是事件参数类。MyEventArgs类用来包含与事件相关的数据,所有的事件参数类都必须从System.EventArgs类派生。当然,如果你的事件不含参数,那么可以直接用System.EventArgs类作为参数。
混口饭吃 | 园豆:170 (初学一级) | 2008-07-10 13:21
0
委托实际上就是一种特殊的类,委托的实例指向方法的引用。既然是类,委托当然可以作为一个类的成员。
麒麟.NET | 园豆:3614 (老鸟四级) | 2008-07-10 15:24
0
为什么class不是类成员... :)
deerchao | 园豆:8167 (大侠五级) | 2008-07-10 18:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册