데브허브 | DEVHUB | C# for Beginners – Lesson 13: Delegates and EventsC# for Beginners – Lesson 13: Delegates and Events
- 이벤트(Events): 프로그램의 한 부분이 다른 부분에 특정 사건 발생을 효율적으로 알리는 메커니즘입니다. 지속적인 상태 확인(폴링) 대신 자동 알림을 통해 성능을 향상시킵니다. 🔔
- 이벤트 정의 및 트리거:
public event Action OnEngineStarted;와 같이 정의하고, OnEngineStarted?.Invoke();를 통해 이벤트를 발생시킵니다. 🚀
- 이벤트 구독:
+= 연산자를 사용하여 특정 메서드를 이벤트에 연결(구독)하여 이벤트 발생 시 해당 메서드가 실행되도록 합니다. 👂
- 이벤트 매개변수: 이벤트는
Action<int> OnBattleOver;와 같이 매개변수를 포함할 수 있어, 구독자에게 추가 정보를 전달할 수 있습니다. 🎁
- 비효율적인 폴링 방지: 이벤트는 특정 조건이 충족되었는지 계속 확인하는 비효율적인 폴링 방식을 대체하여, 필요한 시점에만 반응하도록 합니다. 💡
- 델리게이트(Delegates): 특정 시그니처(매개변수 목록 및 반환 타입)를 가진 메서드에 대한 참조를 저장할 수 있는 변수와 같은 타입입니다. 📝
- 델리게이트 선언 및 할당:
delegate void MyDelegate();와 같이 선언하고, MyDelegate myDelegate = SayHello;처럼 메서드를 할당합니다. 🔗
- 멀티캐스트 델리게이트: 하나의 델리게이트 변수에 여러 메서드를
+= 연산자로 추가하여 저장할 수 있으며, 델리게이트 호출 시 모든 저장된 메서드가 순차적으로 실행됩니다. ➕
- 이벤트와 델리게이트의 관계: 이벤트는 델리게이트를 기반으로 구축된 특정 패턴으로, 델리게이트는 메서드를 캡슐화하는 더 기본적인 개념입니다. 🏗️
- 고급 개념: 이벤트와 델리게이트는 C#의 고급 주제로 간주되지만, 효율적이고 반응적인 프로그램 설계를 위해 이해하는 것이 중요합니다. 🎓