C#知识点-委托

2018-06-17 22:05:47来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一、什么是委托

委托和类一样,是一种用户自定义类型;

类表示的是数据和方法的集合,而委托则持有一个或多个方法;

二、委托的使用

1.声明委托类型

委托是类型,与类一样,委托类型必须在被用来创建变量以及类型的对象之前声明;

image

注意:

以delegate关键字开头;

没有方法主体;

2.创建委托对象

委托是引用类型,因此有引用和对象;

方式一:使用带new运算符的对象创建表达式

image

方式二:快捷方式,方法名称和其相应的委托类型之间存在隐式转换

image

3.给委托赋值

由于委托是引用类型,通过赋值来改变包含在委托变量中的引用。旧的委托对象就会被垃圾回收器回收

4.组合委托

image

注意:

委托是恒定的,委托对象被创建后就不能再被改变

5.为委托添加方法

image

注意:为委托添加方法的结果,

其实由于委托类型是不可变的,所有为委托的调用列表添加了3个方法后的结果其实是变量指向了一个全新的委托

6.从委托移除方法

image

注意:

如果调用列表中的方法有多个实例,-=运算符将从列表最后开始搜索,并移除第一个与方法匹配的实例;

试图删除委托中不存在的方法没有效果;

试图删除空委托会抛出异常。我们可以通过委托和null进行比较来判断委托的调用列表是否为空。如果调用列表为空,则委托为null

7.调用委托

可以像调用方法一样调用委托

image

注意:

使用参数调用委托就会使用相同的参数值调用它的调用列表中的每一个成员;

如果一个方法在调用列表中出现多次,当委托调用时,每次在列表中遇到这个方法时它都会被调用一次

7.调用带返回值的委托

image

分析

image

注意:

调用列表中的最后一个方法返回的值就是委托调用返回的值;

调用列表中所有其他方法的返回值都会被忽略

8.调用带引用参数的委托

image

注意:

如果委托有引用参数,参数值会根据调用列表中的一个或多个方法的返回值而改变;

在调用委托列表中的下一个方法时,参数的新值会传给下一个方法;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:var和dynamic的区别

下一篇:Hello, Android 快速入门