공부/C#

이벤트(event)란?

셩잇님 2023. 3. 6. 12:48
반응형

 

 

1. 이벤트(event)란?

C#에서 이벤트 키워드는 객체 간의 통신 메커니즘인 이벤트를 선언하는 데 사용됩니다. 이벤트를 통해 객체는 다른 객체에 어떤 일이 발생했음을 알리고, 다른 객체가 이벤트에 응답할 수 있는 기회를 제공할 수 있습니다.

 

2. 이벤트(event)의 예제

다음은 C#에서 이벤트를 선언하고 사용하는 예제입니다:

public class MyClass {
  public event EventHandler<MyEventArgs> MyEvent;

  public void DoSomething() {
    // ...

    // Raise the event
    MyEvent?.Invoke(this, new MyEventArgs("hello"));
  }
}

public class MyEventArgs : EventArgs {
  public string Message { get; }

  public MyEventArgs(string message) {
    Message = message;
  }
}

// Usage
MyClass obj = new MyClass();
obj.MyEvent += (sender, e) => Console.WriteLine(e.Message);
obj.DoSomething(); // Output: "hello"

 

위 예제에서 MyClass 클래스는 이벤트 핸들러의 유형이 EventHandler<MyEventArgs>인 MyEvent라는 이름의 이벤트를 선언합니다. EventHandler<TEventArgs>는 이벤트 핸들러를 나타내는 데 사용되는 기본 제공 델리게이트 유형입니다.

MyEventArgs 클래스는 이벤트가 발생할 때 이벤트 핸들러에 전달되는 사용자 지정 이벤트 인수 유형을 정의합니다. DoSomething 메서드는 델리게이트를 호출하여 MyClass 인스턴스에 대한 참조를 발신자로 전달하고 MyEventArgs 인스턴스를 이벤트 인수로 전달하여 MyEvent 이벤트를 발생시킵니다. 마지막으로 이벤트를 처리하는 익명 메서드를 생성하고 이벤트 인수 메시지를 콘솔에 작성하여 이벤트에 가입합니다.

C#의 이벤트는 일반적으로 객체가 이벤트에 대한 관심을 등록하고 이벤트가 발생할 때 알림을 받을 수 있는 옵저버 패턴을 구현하는 데 사용됩니다. 또한 버튼 클릭이나 마우스 움직임과 같은 이벤트를 애플리케이션에서 처리해야 하는 사용자 인터페이스 프로그래밍에서도 일반적으로 사용됩니다.

 

 

 

반응형

'공부 > C#' 카테고리의 다른 글

Yield 키워드란?  (0) 2023.03.06
코루틴(coroutines)이란?  (0) 2023.03.06
델리게이트(Delegate)란?  (0) 2023.03.05
C#에서 Dictionary는 맵일까?, 해쉬 맵일까?  (0) 2023.03.05
컬렉션(Collection)의 종류  (0) 2023.03.05