**

委托的概念

**
C#中的委托类似于C或者C++中函数的指针。
委托是存有对某个方法的引用的一种引用类型变量,引用可在运行是被改变。
委托特别用于实现事件和回调方法。
所有的委托都派生自System.Delegate类。

(其实委托可以打比方为卖房子: 你将房子给中介去卖,然后最终是否卖给买家的决定权还是你在你。)

声明委托
委托声明决定了可由该委托引用的方法。
委托可指向一个与其具有相同标签的方法。

实例化委托
一旦声明委托类型,委托对象必须使用new关键字来创建,且与一个特定的方法有关。
当创建委托时,传递到new语句的参数就像方法调用一样书写但是不带有参数。

例如:用委托输出 你好
创建一个项目 在Program里
1.先声明一个委托 用到delegate
2.写一个执行的方法
3.实例化委托 参数为方法名

委托的
(把方法放到委托里面去 但最终还是回到方法中执行)

带参数的委托
委托的

**

通过事件使用委托

**
事件的概念
事件在类中声明且生成,且通过使用同一个类或者其他类中的委托与事件处理程序关联。
包含事件的类用于发布事件。还被称为发布器(publisher)类。
其他接收该事件的类被称为订阅器(subscriber)类。
事件使用发布-订阅模型。
发布器是一个包含事件和委托定义的对象。
事件和委托之间的联系也定义在这个对象中。

声明事件:
在类的内部声明事件,首先必须声明该事件的委托类型。声明事件本身,使用event关键字。

**例如:**中国人和 美国人 说你好
创建一个项目 在Tell类中
1.定义委托事件
2.定义好事件
3.执行问好的方法

委托的

创建两个类 一个中国人,一个美国人
然后在两个类里面写问好的方法。
委托的

委托的

最后在Program里
1.实例化 发布器
2.实例化 订阅器

委托的

3.在发布器上加上订阅器

4.执行事件
委托的
5.在发布器上去除想要去除的订阅器
委托的
+=是在发布器上加上订阅器
-+是在发布器上去除订阅器

相关文章: