event

2경빈·2024년 11월 10일

C#

목록 보기
5/14

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!
profile
eggs before hatching

0개의 댓글