중요한 C# 주제

C#의 이벤트(events)

이 레슨에서는 이벤트를 선언하고, 처리기를 구독시키고, 변화가 있을 때 이벤트를 발생시킵니다.

소개

이벤트(event)는 발행자와 구독자(publisher/subscriber) 모델에 따라 어떤 일이 일어났을 때 한 객체가 다른 객체들에 알릴 수 있게 해 줍니다. 사용자가 버튼을 클릭할 때처럼 사용자 인터페이스 프로그래밍에서 익숙한 방식입니다.

Counter 클래스는 ThresholdReached 이벤트를 선언합니다. Main에서 += 연산자로 이벤트를 처리할 람다를 구독시킵니다. ReachThreshold()가 호출되면 ?. 연산자는 구독자가 하나 이상 있을 때만 이벤트를 발생시킵니다. 바깥에서는 구독하거나 구독을 취소할 수만 있고, 이벤트를 발생시킬 수 있는 것은 Counter 클래스뿐입니다.

실행 가능한 C# 예제

C#
코드 실행 →
Program.cs
using System;

class Counter
{
    public event EventHandler? ThresholdReached;
    public void ReachThreshold() => ThresholdReached?.Invoke(this, EventArgs.Empty);
}

class Program
{
    static void Main()
    {
        var counter = new Counter();
        counter.ThresholdReached += (_, _) => Console.WriteLine("Threshold reached");
        counter.ReachThreshold();
    }
}
실행 결과
Threshold reached

디버거로 연습하기

중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.

챌린지로 연습하기

이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.

모든 챌린지