[C#] Delegate - 델리게이트(대리자)를 사용하는 이유C#/C#정리2021. 8. 18. 21:09
Table of Contents
🌳 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
무명 델리게이트로 별도의 선언 없이 사용가능하다.
반응형
'C# > C#정리' 카테고리의 다른 글
[C#] 익명메소드와 람다식 (0) | 2021.09.20 |
---|---|
[C#] Event - Delegate를 사용한 이벤트 처리 (0) | 2021.08.31 |
[C#] Callback - 콜백은 어떻게 사용하는가? (0) | 2021.08.31 |
[C#] 확장 클래스 (0) | 2021.08.02 |
[C#] 기본 프로그램 구조 학습 (0) | 2021.08.02 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!