对于代表(委托也是它)delegate类型的意义,前面 引用类型前言 (点击查看) 中已经介绍过了,这里就不再罗嗦了,简言之,委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,说白了就是可以把方法当作参数传递。所有的委托(Delegate)都派生自System.Delegate 类。
(好像不太明白)打个比方吧,室友 HC555 是个LOL爱好者,平时也喜欢逛淘宝买东西,当他正沉浸在LOL中的时候,快递员打电话叫他去取快递,打游戏最烦的莫过于此了,于是就叫我代他将快递取回来,此时我们将室友 看作(roomfriend)类,取快递是类里面的一个方法(takepackage()),而我就是由Delegate实例化的一个对象(能够携带方法的一个对象),“携带” 着室友中取快递的这个方法。
委托的声明:
委托的声明决定了可由该委托引用的方法。委托可指向一个与其具有相同标签的方法。
例如,声明一个委托:
public delegate int MyDelegate(string str); //string类型的变量就是它的标签
上面的委托可被用于引用任何一个带有一个单一的 string 参数的方法,并返回一个int 类型变量。
实例化一个委托:
委托是方法的类型,一旦声明了委托类型,委托对象必须使用new 关键字来创建,且与一个特定的方法有关。当创建委托时,将方法当变量一样传递到 new 语句,但是方法不带有参数。 例如:</