标签:
概述
在上一篇文章中,笔者就个人理解的委托做了简单的分享,本篇文章主要来说说多播委托。多播委托即每个委托可以包含多个方法。
理解多播委托
多播委托可以保护多个方法,但是在使用的时候需要注意:委托的签名必须是返回void,否则只能调用最后一个方法的得到结果。多播委托派生自System.MulticastDelegate类,System.MulticastDelegate类又派生自System.Delegate。System.MulticastDelegate的其他成员可以允许把多个方法调用链接为一个列表。

下面写一个简单的示例
class Program
{
static void Main(string[] args)
{
Action<string> operationActions = Teacher.Show;
operationActions += Student.Show;
operationActions.Invoke("zhangsan");
Console.ReadKey();
}
}
public class Teacher
{
public static void Show(string name)
{
Console.WriteLine("teacher say: my name is {0}",name);
}
}
public class Student
{
public static void Show(string name)
{
Console.WriteLine("student say: my name is {0}", name);
}
}
运行结果如下,非常简单,两个方法按顺序执行

标签:
原文地址:http://www.cnblogs.com/denglei/p/4675042.html