Simple Delegate (delegate) vs. Multicast delegates

后端 未结 6 1221
梦谈多话
梦谈多话 2020-11-27 13:22

I have gone through many articles but I am still not clear about the difference between the normal delegates that we usually create and multicast delegates.

         


        
6条回答
  •  青春惊慌失措
    2020-11-27 13:55

    This article explains it pretty well:

    delegate void Del(string s);
    
    class TestClass
    {
        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()
        {
            Del a, b, c, d;
    
            // Create the delegate object a that references 
            // the method Hello:
            a = Hello;
    
            // Create the delegate object b that references 
            // the method Goodbye:
            b = Goodbye;
    
            // The two delegates, a and b, are composed to form c: 
            c = a + b;
    
            // Remove a from the composed delegate, leaving d, 
            // which calls only the method Goodbye:
            d = c - a;
    
            System.Console.WriteLine("Invoking delegate a:");
            a("A");
            System.Console.WriteLine("Invoking delegate b:");
            b("B");
            System.Console.WriteLine("Invoking delegate c:");
            c("C");
            System.Console.WriteLine("Invoking delegate d:");
            d("D");
        }
    }
    /* Output:
    Invoking delegate a:
      Hello, A!
    Invoking delegate b:
      Goodbye, B!
    Invoking delegate c:
      Hello, C!
      Goodbye, C!
    Invoking delegate d:
      Goodbye, D!
    */
    

提交回复
热议问题