이벤트(Event)란 키 입력, 클릭, 마우스 이동과 같은 사용자 동작 또는 시스템이 생성하는 알림과 같은 특정 발생 상황을 의미합니다.
이벤트는 클래스 내부에서 선언되고 발생(raise)되며, 델리게이트(delegate)를 사용하여 같은 클래스 또는 다른 클래스에 있는 이벤트 핸들러와 연결됩니다. 이때 이벤트를 포함하고 있는 클래스가 해당 이벤트를 게시(publish)하는 역할을 담당합니다.
이벤트 선언 방법
클래스 안에서 이벤트를 선언하려면 먼저 해당 이벤트에 사용할 델리게이트 타입을 선언해야 합니다.
public delegate string myDelegate(string str);
델리게이트를 선언한 후, 다음과 같이 이벤트를 선언합니다.
event myDelegate newEvent;
C# 이벤트 활용 예제
지금까지 배운 내용을 바탕으로 C#에서 이벤트를 실제로 선언하고 사용하는 전체 과정을 예제 코드로 살펴보겠습니다.
예제 코드
using System;
namespace Demo {
public delegate string myDelegate(string str);
class EventProgram {
event myDelegate newEvent;
public EventProgram() {
this.newEvent += new myDelegate(this.WelcomeUser);
}
public string WelcomeUser(string username) {
return "Welcome " + username;
}
static void Main(string[] args) {
EventProgram obj1 = new EventProgram();
string result = obj1.newEvent("My Website!");
Console.WriteLine(result);
}
}
}실행 결과
Welcome My Website!