概述
在上一篇文章中,笔者就个人理解的委托做了简单的分享,本篇文章主要来说说多播委托。多播委托即每个委托可以包含多个方法。
理解多播委托
多播委托可以保护多个方法,但是在使用的时候需要注意:委托的签名必须是返回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); } }
运行结果如下,非常简单,两个方法按顺序执行
时间: 2024-10-18 03:56:44