Delegate

Posted CoderBaby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delegate相关的知识,希望对你有一定的参考价值。

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(估计这样它们就指向同一块内存地址了)

以上是关于Delegate的主要内容,如果未能解决你的问题,请参考以下文章

一行代码,快速为UITableView创建Delegate和DataSource

避免在 App Delegate 中重复执行代码

SpringBoot 集成MyBatis-Plus提示反序列化异常:cannot deserialize from Object value (no delegate- or property-bas

viewcontroller中appdelegate和delegate的区别

GroovyMOP 元对象协议与元编程 ( 方法委托 | 使用 @Delegate 注解进行方法委托 )

Android源代码之DeskClock Proxy/Delegate Application 框架应用