C# 委托

当定义了委托,实际上是定义了一个特定类型的对象,而不是一个具体的实例。这个委托类型只指定它代表的方法的返回值类型和参数表。要检查代表具体方法的委托,必须首先创建一个委托实例。

1、在使用委托之前,必须先声明委托。声明委托,就像声明方法一样简单,基本格式如下:

delegate-modifiers return-type delegate-name(argument-list)

2、声明委托之后,就可以创建委托实例,其为System.Delegate类的派生类实例,基本格式如下:

delegate-type name = new delegate-type(method); method是委托所代表的方法的名字。

委托的调用是通过输入委托实例的名称和要传递给委托所表示的方法的参数来实现的,参数要放在圆括号中。

委托是引用类型,可以传递给方法或包括在方法的参数列表中,就像其他任何引用类型一样。

委托的综合应用:委托是一种可以把引用储存为函数的类型,其机制非常简单。当把委托作为参数传递给一个函数时,那么该函数就可以使用委托调用其调用的任何函数,而且在运行之前无需知道调用的是哪个函数。

多播委托:调用委托的次数与调用方法的次数必须相同,如果要调用多个方法,就需要多次显式调用这个委托。如果委托包含了多个方法的调用,这种委托就被称为多播委托。当使用多播委托时,可以按照顺序连续调用多个方法。

委托可以用算术运算符“+”串在一起。

如果想把委托的单个实例合并为一个多播委托,委托必须是同类型的,返回值类型必须是void,不能带输出参数。多播委托可以用算术运算符“+”和“+=”串在一起,也可以使用“-”和“-=”算术运算符号从多播委托中删除。当调用多播委托时,委托所代表的每个方法都会被依次调用,如果有参数,将其用于所有的方法中。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值