C#/C#정리
[C#] Delegate - 델리게이트(대리자)를 사용하는 이유
반나무
2021. 8. 18. 21:09
🌳 Delegate
메서드를 담을 수 있는 타입.
- 관례적으로 Delegate 타입의 이름은 끝에 Delegate라는 접미사를 붙인다.
- JS의 함수를 변수처럼 사용하는 개념과 유사하다.
- C, C++ 개발자들에게는 간단하게 함수포인터 라고한다.
🌳 델리게이트를 사용하는 이유
보통 이벤트 핸들링을 위해서 사용한다.
콜백을 위해서도 사용한다.
델리게이트를 잘 사용하면 이벤트 규격(함수형태)만 잘 정의하면 필요한 정보를 필요한 오브젝트에 쉽게 전달할 수 있다.
🌳 델리게이트 생성 예제
public class DelegateExample
{
delegate void ExampleDelegate();
void Start()
{
ExampleDelegate del = Hello;
del();
}
void Hello()
{
Debug.Log("Hello");
}
}
🌳 멀티캐스트 기능
멀티캐스트란 여러 개의 메서드를 담을 수 있다는 뜻
+=로 추가
-=로 제거
public class DelegateExample
{
delegate void HumanDelegate();
void Start()
{
HumanDelegate human = Walk;
human += Eat;
human += Sleep;
human();
}
void Walk()
{
Debug.Log("Walk");
}
void Eat()
{
Debug.Log("Eat");
}
void Sleep()
{
Debug.Log("Sleep");
}
}
🌳 Func & Action
무명 델리게이트로 별도의 선언 없이 사용가능하다.
반응형