委托

第一、委托定义是用关键字delegate来修饰的,它是定义了方法的类型,总之委托是一种类型,只是一种专门针对方法的类型。

定义了委托实际上是定义了一个签名,这里的签名指的是(方法的返回值,以及参数类型、个数。和方法名称没有关系),

和委托类型的签名相同的方法都是属于这种委托类型的。例如上面的:

      void  EnglishGreeting(String name)   和  void  ChineseGreeting(String name) 都是属于GreetingDelegate这种委托类型的

因为返回值都相同,参数都是一个string类型的。

 

第二、定义委托和定义类是一样的,类在哪里定义的,那么委托也可以再哪里定义。

   上面的private void GreePeople(string name , GreetingDelegate MakeGreeting)  一个参数为GreetingDelegate的委托类型。

通过观察知道EnglishGreeting这个方法时属于这种委托类型的,因为他的签和委托是一样的,那么它就可以作为参数传进去。

这样就实现了动态调用一个方法。、

上面演示了“如何作为参数传进去,如何调用的”,只要把方法名传进去就可以了

第三:委托链:可以将多个方法加载到同一个委托对象上

委托是一种类型,那么类能可以通过new方法new出来,那么委托也可以通过new方法new出来。但是委托的new方法

不包含0个参数的构造函数,必须要带有参数。

委托类型的实例又有什么用呢?比如上面的EnglishGreeting方法,委托给委托对象了,那么这个委托对象就代表了我这个方法。

并且中间还可以赋值,例如上面delefgatel这个委托对象重新代表了ChineseGreeting方法的委托。

 

 

可以给委托对象追加方法,这样就代表了多个方法,这样的这个委托对象就可以依次执行这个委托对象里的方法。

形成委托链,这样主要能实现批处理。。。这点很重要。(委托链也是一个委托对象)

那么如何调用委托对象呢?委托对象代表的方法怎么用,那么我这个委托就是怎么用的····

例如上面的delegatel(“Peng哥”)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值