zoukankan      html  css  js  c++  java
  • 合并委托(多路广播委托)

    合并委托(多路广播委托)

    本示例演示如何创建多播委托。
    委托对象的一个有用属性是:可以使用 + 运算符将多个对象分配给一个委托实例。
    多播委托包含已分配委托的列表。
    在调用多播委托时,它会按顺序调用列表中的委托。
    只能合并相同类型的委托。
    - 运算符可用于从多播委托中移除组件委托。

    C#
    using System;
    
    // Define a custom delegate that has a string parameter and returns void.
    delegate void CustomDel(string s);
    
    class TestClass
    {
        // Define two methods that have the same signature as CustomDel.
        static void Hello(string s)
        {
            System.Console.WriteLine("  Hello, {0}!", s);
        }
    
        static void Goodbye(string s)
        {
            System.Console.WriteLine("  Goodbye, {0}!", s);
        }
    
        static void Main()
        {
            // Declare instances of the custom delegate.
            CustomDel hiDel, byeDel, multiDel, multiMinusHiDel;
    
            // In this example, you can omit the custom delegate if you 
            // want to and use Action<string> instead.
            //Action<string> hiDel, byeDel, multiDel, multiMinusHiDel;
    
            // Create the delegate object hiDel that references the
            // method Hello.
            hiDel = Hello;
    
            // Create the delegate object byeDel that references the
            // method Goodbye.
            byeDel = Goodbye;
    
            // The two delegates, hiDel and byeDel, are combined to 
            // form multiDel. 
            multiDel = hiDel + byeDel;
    
            // Remove hiDel from the multicast delegate, leaving byeDel,
            // which calls only the method Goodbye.
            multiMinusHiDel = multiDel - hiDel;
    
            Console.WriteLine("Invoking delegate hiDel:");
            hiDel("A");
            Console.WriteLine("Invoking delegate byeDel:");
            byeDel("B");
            Console.WriteLine("Invoking delegate multiDel:");
            multiDel("C");
            Console.WriteLine("Invoking delegate multiMinusHiDel:");
            multiMinusHiDel("D");
        }
    }
    /* Output:
    Invoking delegate hiDel:
      Hello, A!
    Invoking delegate byeDel:
      Goodbye, B!
    Invoking delegate multiDel:
      Hello, C!
      Goodbye, C!
    Invoking delegate multiMinusHiDel:
      Goodbye, D!
    */
  • 相关阅读:
    SQL 标准中的四种隔离级别
    java中快速排序的理解以及实例
    java中对插入排序的理解以及实例
    对冒泡排序的理解和实例
    MYSQL面试
    软件测试面试问题
    软件测试
    Linux常用命令
    关于将博客搬家至博客园的声明
    MFC常见问题以及解决方法(1)_MFC下文本编辑框按下回车后窗口退出
  • 原文地址:https://www.cnblogs.com/gsk99/p/4988292.html
Copyright © 2011-2022 走看看