C#中委托的理解和使用

C#中有一种特殊的回调(callback)函数叫委托,委托是一种定义方法签名的类型,当需要把方法传递给其他方法时就要用到委托。
    我们常常习惯把数据作为参数传递给方法,而当某个方法执行的操作不是针对数据进行的,而是对另一个方法进行操作,这时就需要用到委托。
   委托的定义:
         delegate void IntMethod(int i);
在这个示例中,我们定义了一个委托IntMethod,并指定该委托每个实例都包含一个方法的细节,该方法带有Int类型的参数,返回void。其语法类似于方法的定义,但没有方法体,定义的前面要加上关键字deletage。,定义一个委托相当于定义一个类,所以可以在定义类的内部和外部定义委托,也可以在命名空间定义为顶层对象,根据定义的可见性,可以在委托定义上添加一般的访问修饰符:public,private,proteted等:
    public  delegate void IntMethod(int i);
下面通过一个简单的示例来理解学习委托:
首先创建一个类,该类中定义了两个方法,供委托回调



接下来创建一个委托回调方法的类

程序执行步骤:1.创建一个委托DoubleDelegate返回double类型,带有一个double类型参数,
              2.创建了一个DoubleDelegate委托类型的数组,在数组里绑定了Program类中的两个方法,
              3.通过for循环,遍历委托数组中的方法
              4.执行计算显示数字方法(ProcessAndDisplayNumber),将委托数组遍历的索引和参数值分别传给该方法对应的两个变量上
              5.委托类型变量action绑定了传进来的委托数组索引代表的方法,所以当调用这个action时相当于调用了它传进来的方法,将value值传给action委托的参数,相当于传给action代表的方法,程序自然跳转到绑定的该方法执行相关操作,然后将值在返回给result变量,如此循环,最终输出结果如下


由此示例可以了解到,当方法绑定在一个委托上时,调用委托就是调用绑定在该委托上的方法

如有出错,望大神门指教,万分感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值