Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#에서 멀티캐스팅 대리자란 무엇입니까?

<시간/>

둘 이상의 메서드에 대한 참조를 보유하는 대리자를 멀티캐스팅 대리자라고 합니다.

예를 들어 보겠습니다 -

using System;
delegate void myDelegate(int val1, int val2);
public class Demo {
   public static void CalAdd(int val1, int val2) {
      Console.WriteLine("{0} + {1} = {2}", val1, val2, val1 + val2);
   }

   public static void CalSub(int val1, int val2) {
      Console.WriteLine("{0} - {1} = {2}", val1, val2, val1 - val2);
   }
}

public class Program {
   static void Main() {
      myDelegate d = new myDelegate(Demo.CalAdd);
      d += new myDelegate(Demo.CalSub);
      d(45, 70);
      d -= new myDelegate(Demo.CalAdd);
      d(95, 70);
      d += new myDelegate(Demo.CalSub);
      d(88, 6);
      d -= new myDelegate(Demo.CalAdd);
      d(40, 20);
      Console.Read();
   }
}

위의 예에서 우리의 대리자는 -

delegate void myDelegate(int val1, int val2);

다음을 사용하여 대리자에서 둘 이상의 메서드에 대한 참조를 설정했습니다. 즉, CalAdd() 및 CalSub() -

myDelegate d = new myDelegate(Demo.CalAdd);
d += new myDelegate(Demo.CalSub);
d(45, 70);
d -= new myDelegate(Demo.CalAdd);
d(95, 70);
d += new myDelegate(Demo.CalSub);
d(88, 6);
d -= new myDelegate(Demo.CalAdd);
d(40, 20);