细节详解.NET中的委托

#div_codimg{border:0px;}

//CodeinC#

intypublicdelegintPerformCalculintx.;

 

 

 

 

通过委托可以间接地调用该方法。简单理解Deleg委托(或代理)一种数据类型:变量可以引用到某一个符合要求的方法上。

区别在于.NET委托是类型平安的这说明,其实.NET委托类似于C语言的函数指针。C中的函数指针只不过是一个指向存储单元的指针,无法说出这个指针实际指向什么。

  2.委托使用

使用委托的四部曲:

定义一种委托类型

委托执行时要调用方法

定义一个委托实例

委托实例的调用

先定义一种委托类型如下:

//自定义一种委托类型

 

publicdelegatevoidStringProcessorstringinput;

然后我再定义5中候选的委托方法如下:

voidPrintStrstringx

voidPrintIntegintx

stringyintGetStringLengthstringxvoidPrintTwoStrstringx.>

voidPrintObjectobjectx

 

参数个数和返回类型匹配)激动时刻到马上公布答案,大家猜猜看哪个和上面提供的委托类型签名匹配(签名匹配:参数类型。和委托类型匹配的方法是PrintStr和PrintObject如果有不明白的请细细考虑一下委托匹配的条件—签名匹配。

                                                       图1委托胜利输出

接下来我将介绍委托最经常使用的地方—事件。现在对委托有了一定的认识。

例如在UI编程中,将从发送器和接受器的角度讨论事件。鼠标单击或键盘按键,发送器就是.NETCLR注意事件发送器并不知道接收器是谁,这符合面向对象的原则,而且某个事件接收器有个方法处置该事件,这个时候就要委托,如前面所讲事件发送器对事件接收器一无所知,通过委托作为一个中介,接收器把事件处置方法注册到事件中,这样就实现了由发送器->委托->接收器的过程了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值