event는 C#에서 이벤트를 정의하기 위한 키워드로, 특정 작업이나 상태 변화가 발생했을 때 다른 메서드가 실행되도록 연결하는 구조이다. 이벤트는 대표적으로 GUI 프로그램에서 버튼 클릭, 데이터 변경, 알림 등 특정 조건이나 행동이 발생했을 때 관련 작업을 수행하기 위해 자주 사용된다.
이벤트는 델리게이트(delegate)의 개념을 확장한 것으로, 발생할 가능성이 있는 행동이나 상황을 다른 코드에서 구독(subscribe)할 수 있도록 만들어 준다.
event 키워드를 사용하면 외부 코드에서 이벤트를 발생시킬 수 없고, 등록하거나 제거만 할 수 있다.Ex )
using System; public class Alarm { public event Action<string> AlarmTriggered; public void TriggerAlarm(string message) { Console.WriteLine("Alarm triggered!"); AlarmTriggered?.Invoke(message); // 이벤트 발생 } } public class AlarmListener { public void OnAlarmTriggered(string message) { Console.WriteLine("Listener 1 received alarm: " + message); } public void OnSecondaryAlarmTriggered(string message) { Console.WriteLine("Listener 2 also received alarm: " + message); } } public class Program { public static void Main() { var alarm = new Alarm(); var listener = new AlarmListener(); // 여러 메서드 구독 alarm.AlarmTriggered += listener.OnAlarmTriggered; alarm.AlarmTriggered += listener.OnSecondaryAlarmTriggered; // 이벤트 발생 alarm.TriggerAlarm("Fire in the building!"); } } 결과값 Alarm triggered! Listener 1 received alarm: Fire in the building! Listener 2 also received alarm: Fire in the building!