什么是委托?为什么要使用委托?什么是事件?

1、什么是委托?

首先声明一个委托: public delegate string IsLengthFive (string s);

下面写几个方法:

public  string DoWork(string a){};

public  string DoSomeWork(string b){};

public string DoNothing(string c){};

委托是一个类型,它代表着签名相同的一类方法。所谓签名相同也就是方法的返回值相同,方法的参数列表相同。

举例帮助理解(string name = "a"; 在这里string定义了name参数所能代表的值的类型,也就是name参数的类型。在上面例子中的委托IsLengthFive 代表着返回类型为string,参数是一个string类型的所有方法)

2、委托的使用

使用委托前要声明委托变量,首次声明委托变量有两种方式:

a01:IsLengthFive  stringLength;

stringLength = DoWork;  ///首次先给委托变量赋值

stringLength += DoSomeWork; ///使用  += 方法给委托变量stringLength绑定方法

stringLength += DoNothing;

经过上面的操作此时的 stringLength 已经有三个方法可以进行调用了

a02:IsLengthFive  stringLength = new IsLengthFive();

 stringLength += DoWork;  //首次直接绑定方法到变量上

stringLength += DoSomeWork;

stringLength += DoNothing;

此时的stringLength也代表了三种方法,进行  -= 操作:stringLength -= DoNothing; ,将DoNothing方法解除绑定

为什么要使用委托?

使用委托可以将同类型的方法绑定到同一个变量上,当调用此变量时就可以一次调用绑定的方法,很方便。

什么是事件?(属性对字段进行封装)

事件是由 event 关键字修饰的委托————那么事件的本质就是一种委托

声明一个事件就好比声明了一个进行了封装的委托类型的变量!

 匿名方法在委托中的使用

posted @ 2018-04-13 15:36  EFLand  阅读(3618)  评论(2编辑  收藏  举报