[c#] C#의 이벤트와 대리자
C#에서 이벤트(event)는 클래스나 객체에서 발생하는 특정한 일(사건)을 의미합니다. 이벤트는 다른 클래스나 객체에서 구독(subscribe)하고 처리할 수 있는 기능을 제공합니다.
이벤트는 대리자(delegate)를 사용하여 구현됩니다. 대리자는 이벤트가 발생했을 때 호출할 메서드들의 시그니처를 나타내는 형식입니다. 이를 통해 이벤트가 발생했을 때 해당 이벤트를 처리하는 메서드를 호출할 수 있습니다.
대리자 (Delegate)
대리자는 다른 메서드를 가리키는 참조 역할을 하는 형식입니다. 대리자를 이용하여 이벤트가 발생했을 때 호출될 메서드의 타입을 나타냅니다.
public delegate void MyEventHandler(object sender, EventArgs e);
위 예시에서 MyEventHandler
대리자는 object sender
와 EventArgs e
매개변수를 갖는 메서드를 가리킵니다.
이벤트 (Event)
이벤트는 클래스 외부에서 발생한 특정 사건을 다른 클래스에서 감지하고 처리할 수 있는 기능을 제공합니다. 이벤트는 대리자를 통해 구현됩니다.
public class MyClass
{
public event MyEventHandler MyEvent;
public void DoSomething()
{
// Do something...
MyEvent?.Invoke(this, EventArgs.Empty); // 이벤트 발생
}
}
위 예시에서 MyEvent
는 MyEventHandler
타입의 이벤트로, DoSomething
메서드에서 이벤트를 발생시킵니다.
이렇게 이벤트와 대리자를 활용하면 C#에서 클래스나 객체 간의 효과적인 통신 및 상호작용을 구현할 수 있습니다.