|
delegate同样可以是类成员。
[code]
//定义delegate
public delegate void Do(string msg);
public class C{
//作为类成员变量声明
public Do _do;
}
[/code] 为什么,很重要吗? C#中的事件处理实际上是一种具有特殊签名的delegate,象下面这个样子: public delegate void MyEventHandler(object sender, MyEventArgs e); 其中的两个参数,sender代表事件发送者,e是事件参数类。MyEventArgs类用来包含与事件相关的数据,所有的事件参数类都必须从System.EventArgs类派生。当然,如果你的事件不含参数,那么可以直接用System.EventArgs类作为参数。 委托实际上就是一种特殊的类,委托的实例指向方法的引用。既然是类,委托当然可以作为一个类的成员。 为什么class不是类成员... :) |