• 多播委托的理解


         多播委托就是让一个委托能有若干个方法去执行,先看一个代码:

    delegate int DelegateFunction(int a, int b);
        class Program 
        { 
            static void Main(string[] args) 
            { 
                DelegateFunction test = new DelegateFunction(Add); 
                test += Minus; 
                Console.WriteLine(test(2, 1)); 
                Console.ReadKey();
            } 
            static int Add(int x, int y)
            {
                Console.Write("X + Y:"); 
                return x + y; 
            } 
            static int Minus(int x, int y) 
            {
                Console.Write("X - Y:"); 
                return x - y; 
            } 
        }
    

     用+=就可以建立多播委托,委托test原来有一个add方法,又+=一个Minus方法;

    以上代码执行的结果是 X+Y:X-Y:1

    Add方法的值没有返回回来,因为追加了委托之后就返回最后一个追加上的委托计算出的值;

    需要用遍历才能让每个追加的委托返回值,需做以下修改

    delegate int DelegateFunction(int a, int b);
        class Program 
        { 
            static void Main(string[] args) 
            { 
                DelegateFunction test = new DelegateFunction(Add); 
                test += Minus; 
                foreach (DelegateFunction func in test.GetInvocationList()) 
                { 
                    Console.WriteLine(func(2, 1)); 
                }
                Console.ReadKey();
            } 
            static int Add(int x, int y) 
            { 
                Console.Write("X + Y:"); 
                return x + y; 
            } 
            static int Minus(int x, int y) 
            { 
                Console.Write("X - Y:"); 
                return x - y; 
            } 
        }
    

     输出结果:

      X+Y:3

       X-Y:1

  • 相关阅读:
    linux ssh免密
    flink WaterMark之TumblingEventWindow
    flink 并行计数器实现
    VSCode删除重复的空行
    Gnome添加Open with Code菜单
    Linux下设置VSCode为默认的文本编辑器
    Jupyter Notebook添加Ruby支持
    Linux下无法运行Color picker
    oh-my-zsh: bracketed-paste-magic:zle:47: not enough arguments for -U
    Vim auto-pairs设置选项
  • 原文地址:https://www.cnblogs.com/JhoneLee/p/3029072.html
Copyright © 2020-2023  润新知