Unity/C#

-C#- 대리자(delegate)

검은젤리곰 2019. 5. 28. 11:21

C#의 대리자(delegate)는 C++의 함수 포인터의 기능과 유사하다.

오늘은 이 대리자에 대해 아주아주 간단하게 적어볼것이다 (한번에 이해가 딱 와닿질 않아서... 추후에 다시 정리해보자.)

delegate는 대리자라는 이름 그대로 메소드를 대신해서 호출하는 역할을 가진다.

 

델리게이트로 메소드를 호출하기 위해서는 반환타입과 매개변수가 모두 해당 메소드와 같은 타입이어야 한다.

delegate void Func(int);

void func(int);

 

delegate int Func2(float);

int func2(float);

 

대리자로 메소드르 호출하려면, 해당 대리자 타입으로 변수를 생성해 호출할 메소드를 참조시키면 된다.

Func delegate;

delegate = new Func(func);