delegate

Minsang Kim·2023년 11월 6일
0

오늘으 질문

델리게이트(Delegate)에 개념에 대해 설명해주세요.

오늘으 답변

델리게이트는 대리자라는 뜻으로, 메소드를 참조해 간접적으로 호출하기 위해 사용합니다. 델리게이트는 객체로써 변경이 가능하고 인수로 전달할 수 있으며 사용할 때는 메소드의 반환형, 매개 변수의 종류와 갯수가 모두 일치해야 합니다. 델리게이트를 사용함으로써 콜백이나 구독 패턴을 구현할 수 있습니다.

+ TMI

Delegate 클래스 = 메소드를 참조하는 대리자.
델리게이트 객체는 변경 가능한 변수.
변수이기 때문에 인수로 전달 가능 => 콜백.
발행/구독 패턴.
델리게이트가 대신할 수 있는 메소드는 반환형, 매개 변수 종류와 갯수가 모두 일치해야 한다.
메소드를 직접 호출하는 것이 아닌 델리게이트를 통해 간접적으로 호출.
델리게이트 체인.

delegate void dele(int a);

class TEST
{
	public static void Method1(int a) { Console.WriteLine($"Method1 {a}"); }
    public static void Method2(int a) { Console.WriteLine($"Method2 {a}"); }
    
    static void Main()
    {
    	dele d;
        d = Method1;
        d(12);
        d += Method2;
        d(34);
    }
}

	=>	Method1 12
    	Method1 34
    	Method2 34
profile
게임만 하다가 개발자로

0개의 댓글