目录
1.委托的多播
2.编写程序,实现委托的多播。
代码 如下:
单播:
多播:
1.委托的多播
委托对象可使用 “+” 运算符进行合并。一个合并委托调用它所合并的两个委托。只有相同类型的委 托可被合并。 “-” 运算符可用于从合并的委托中移除组件委托。 委托也可以包含多个方法,这种委托称为多播委托,也叫组播。
2.编写程序,实现委托的多播。
先在 Visual Studio 2019 中,新建名称为 “project1” 的文件,这里的文件名大家可以根据自己的文件名称所改。
代码 如下:
using System;
public delegate int NumberDelegate(int num1, int num2); // 委托,声明在类之外
namespace project1
{
public class Program
{
public static int AddMethod(int num1, int num2)
{Console.WriteLine("Sum={0}", num1 + num2);return num1 + num2;
}
public static int SubMethod(int num1, int num2)
{Console.WriteLine("Sub={0}", num1 - num2);return num1 - num2;
}
public static void Main(string[] args)
{//单播NumberDelegate nd1 = null;nd1 += AddMethod;Console.WriteLine("委托一个方法的结果为:{0}", nd1(3, 2));//多播NumberDelegate nd2 = null;nd2 += AddMethod;nd2 += SubMethod;Console.WriteLine("委托两个方法的结果为:{0}", nd2(2, 4));
}
}
}
以上演示了委托的单播和多播。
单播:
在代码中,声明了一个委托 NumberDelegate ,然后在 Main 方法里面定义了委托变量nd1,接着使用 “+”运算符将AddMethod方法注册给nd1,然后执行nd1,可以看到AddMethod方法被执行了。
多播:
在Main方法中定义了委托变量nd2,接着使用"+"运算符将AddMethod方法和SubMethod方法注册给 nd2,然后执行nd2,可以看到2个注册的方法都被执行了。
注意:对于多播,调用委托后,按照注册顺序执行。不过对于有返回值的方法,将返回最后注册的方法执行后的返回值。
在 Visual Studio 2019 中的运行结果如图所示。
以上是关于单播以及多播的知识点。