다음을 통해 공유


방법: 대리자 조합(멀티캐스트 대리자)(C# 프로그래밍 가이드)

업데이트: 2007년 11월

이 예제에서는 멀티캐스트 대리자를 구성하는 방법에 대해 설명합니다. 대리자 개체에는 + 연산자를 사용하여 대리자 인스턴스에 대입하면 멀티캐스트가 된다는 유용한 특성이 있습니다. 구성된 대리자는 자신을 구성하는 두 개의 대리자를 호출합니다. 형식이 같은 대리자만 구성에 사용할 수 있습니다.

- 연산자를 사용하면 구성된 대리자에서 구성 요소 대리자를 제거할 수 있습니다.

예제

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!
*/

참고 항목

개념

C# 프로그래밍 가이드

참조

이벤트(C# 프로그래밍 가이드)

MulticastDelegate