代码语言:javascript复制
public delegate void EventHandler(object sender, EventArgs e);
pulic EventHandler HandleMapMessage;
HandleMapMessage = MapControl;
public void MapControl(obeject sender,EventArgs e)
{
....
}
C#里的Delegate据说相当于C 函数指针。如上例首先,用语法delegate 定义个一个delegate(和函数签名完全一样,只是多了个关键字delegate),相当于自定义了一个类型。然后可以声明一个自定义委托的一个实例(有点类实例化对象的意思),如代码里的public EventHandler HandelMapMessage; 最后再定义一个具体实现功能的函数,返回类型,参数个数,参数顺序和类型必须完全和自定义的委托匹配,估计这样可以唯一标识。然后赋值一下:HandleMapMessage = MapControl(估计这样它们就指向同一块内存地址了)