多点委托

前面两篇使用的每个委托都只包含一个方法调用,调用委托的次数与调用方法的次数相同.如果需要调用多个方法,就需要显示的调用多次委托.其实委托可以包含多个方法,这种委托称为多点委托.调用多点委托,就可以按顺序连续调用多个方法.

class Program
{
static void Main(string[] args)
{
Student s = new Student();
DelStudy ds = new DelStudy(s.study);
ds += new DelStudy(s.study);
ds();
}
}

/// <summary>
/// 学生
/// </summary>
class Student
{
public void study()
{
//学习
Console.WriteLine("学生在学习");
}
}

delegate void DelStudy();

程序执行结果:
[quote]
学生在学习
学生在学习
请按任意键继续. . .
[/quote]

实际上委托可以识别运算符
[size=large]+
+=
-
-=[/size]
我们来看下面的例子:
代码片段:
例一:

Student s = new Student();
DelStudy ds1 = new DelStudy(s.study);
DelStudy ds2 = new DelStudy(s.study);
DelStudy ds3 = ds1 + ds2;
ds3();

程序执行结果:
[quote]
学生在学习
学生在学习
请按任意键继续. . .
[/quote]
-操作和-=操作同上......

多点委托的限制: :o
(1)
编译器只能识别返回值是void委托的+,+=,-,-=操作
或者
(2)
即时有的编译器能够识别返回值是非void委托的+,+=,-,-=操作,它也仅仅只返回最后一个方法的返回值......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值