风夜北个人技术博客

这是一个分享技术的地方,个人水平有限,难免出现理解有误,如果有不到之处,欢迎指出,共同学习进步

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

C#多播委托

概述

  在上一篇文章中,笔者就个人理解的委托做了简单的分享,本篇文章主要来说说多播委托。多播委托即每个委托可以包含多个方法。

理解多播委托

  多播委托可以包含多个方法,但是在使用的时候需要注意:委托的签名必须是返回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);
        }
    }

 运行结果如下,非常简单,两个方法按顺序执行

 

posted on 2015-07-24 23:17  风夜北  阅读(689)  评论(0)    收藏  举报