- 메서드를 대신 호출해준다고 해서 대리자 라고도 부르며 인스턴스가 아닌 형식(Type) 이다.
- 따라서 사용할때 인스턴스를 생성해서 사용해야 한다.
- Delegate 를 사용하면 한번의 이벤트에 여러 메서드를 동시에 호출 할 수 있고,
- 메서드를 다른 메서드에 변수처럼 전달 가능하다.
- 이벤트 처리, 비동기 프로세스 처리 등을 보다 간편하게 하기 위해 사용된다.
- ✨ 정의하는 방법은 delegate 키워드를 사용하고, 대리자가 참조할 메서드를 생성한 후 new 키워드로 delegate 객체를 생성한다. (참조할 메서드의 형태는 대리자와 동일 해야 한다.)
// Mydelegate 라는 대리자 선언
public delegate void MyDelegate(string msg);
public staitc void MethodA(string msg){
Console.WriteLine("Param of Method A" + msg);
}
public static void MethodB(string msg){
Console.WriteLine("Param of Method B" + msg);
}
static void Main(){
// 사용법 Main()내부
MyDelegate del;
del = new MyDelegate(MethodA);
del("Method A Call");
del = new MyDelegate(MethodB);
del("Method B Call");
}
2. Main() 내부 두번째 사용방법
// 선언과 동시에 할당
MyDelegate del = MethodA;
del("Method A Call");
del = MethodB;
del("Method B Call");