委托支持多路广播是什么概念,与委托链什么关系,是一个意思吗?很多地方都讲,委托支持多路广播,可是又没有说,什么是多路广播,
另外又提到委托链,就是一个委托可以维护一个方法列表,这个列表中有多个方法,形成一个链条,
我想问,二者有区别和联系吗?
另外又提到委托链,就是一个委托可以维护一个方法列表,这个列表中有多个方法,形成一个链条,
我想问,二者有区别和联系吗?
调试欢乐多
How to: Combine Delegates (Multicast Delegates)(C# Programming Guide)
委托也能实现吧函数调用的签名做参数传递给别人,但不同的是一个委托不一定对应一个函数,而是一个委托可以对应多个函数。比如public class DelegateTestClass
{
//声明一个委托,这里只写签名
public delegate void GetResultHandler(double a, double b);
public void Add(double a, double b)
{
checked
{
Console.WriteLine("{0}+{1}={2}", a, b, a + b);
}
}
public void Sub(double a, double b)
{
checked
{
Console.WriteLine("{0}-{1}={2}", a, b, a - b);
}
} public void Multiplication(double a, double b)
{
checked
{
Console.WriteLine("{0}*{1}={2}", a, b, a * b);
}
}
public void Division(double a, double b)
{
checked
{
Console.WriteLine("{0}/{1}={2}", a, b, a / b);
}
}
public void Test()
{
GetResultHandler invoker = new GetResultHandler(Add);//加法
Console.WriteLine("加法");
invoker(2, 3);
Console.WriteLine("加法、减法");
invoker += Sub;//添加减法
invoker(2, 3);
invoker += Multiplication;//添加乘法
Console.WriteLine("加法、减法、乘法");
invoker(2, 3);
invoker += Division;//添加除法
Console.WriteLine("加法、减法、乘法、除法");
invoker(2, 3);
}
}
调用方法是同样的,但执行的方法是可以配置的。