event(C# 참조)

event 키워드는 게시자 클래스에서 이벤트를 선언하는 데 사용합니다.

예제

다음 예제에서는 EventHandler를 내부 대리자 형식으로 사용하는 이벤트를 선언하고 발생시키는 방법을 보여 줍니다. 제네릭 EventHandler<TEventArgs> 대리자 형식을 사용하는 방법과 이벤트를 구독하고 이벤트 처리기 메서드를 만드는 방법도 보여 주는 전체 코드 예제는 방법: .NET Framework 지침을 따르는 이벤트 게시(C# 프로그래밍 가이드)를 참조하십시오.


    public class SampleEventArgs
    {
        public SampleEventArgs(string s) { Text = s; }
        public String Text {get; private set;} // readonly
    }
    public class Publisher
    {
        // Declare the delegate (if using non-generic pattern).
        public delegate void SampleEventHandler(object sender, SampleEventArgs e);

        // Declare the event.
        public event SampleEventHandler SampleEvent;

        // Wrap the event in a protected virtual method
        // to enable derived classes to raise the event.
        protected virtual void RaiseSampleEvent()
        {
            // Raise the event by using the () operator.
            if (SampleEvent != null)
                SampleEvent(this, new SampleEventArgs("Hello"));
        }
    }

이벤트는 해당 이벤트가 선언된 클래스나 구조체(게시자 클래스)에서만 호출할 수 있는 특수한 종류의 멀티캐스트 대리자입니다. 다른 클래스나 구조체가 이벤트를 구독할 경우 해당 이벤트 처리기 메서드는 게시자 클래스에서 이벤트를 발생시킬 때 호출됩니다. 자세한 내용 및 코드 예제를 보려면 이벤트(C# 프로그래밍 가이드)대리자(C# 프로그래밍 가이드)를 참조하십시오.

이벤트는 public, private, protected, internal 또는 protected internal로 표시할 수 있습니다. 이러한 액세스 한정자는 클래스 사용자가 이벤트에 액세스하는 방식을 정의합니다. 자세한 내용은 액세스 한정자(C# 프로그래밍 가이드)을 참조하십시오.

키워드 및 이벤트

이벤트에는 다음 키워드를 적용할 수 있습니다.

키워드

설명

자세한 내용

static

클래스의 인스턴스가 없어도 언제든지 호출자가 이벤트를 사용할 수 있습니다.

정적 클래스 및 정적 클래스 멤버(C# 프로그래밍 가이드)

virtual

파생 클래스에서 override 키워드를 사용하여 이벤트 동작을 재정의할 수 있습니다.

상속(C# 프로그래밍 가이드)

sealed

파생 클래스에 대해 더 이상 virtual이 아님을 지정합니다.

 

abstract

컴파일러에서는 add 및 remove 이벤트 접근자 블록을 생성하지 않으므로 파생 클래스에서 고유한 구현을 제공해야 합니다.

 

static 키워드를 사용하면 이벤트를 정적 이벤트로 선언할 수 있습니다. 이렇게 하면 클래스의 인스턴스가 없어도 언제든지 호출자가 이벤트를 사용할 수 있습니다. 자세한 내용은 정적 클래스 및 정적 클래스 멤버(C# 프로그래밍 가이드)을 참조하십시오.

virtual 키워드를 사용하면 이벤트를 가상 이벤트로 표시할 수 있습니다. 이렇게 하면 파생 클래스에서 override 키워드를 사용하여 이벤트 동작을 재정의할 수 있습니다. 자세한 내용은 상속(C# 프로그래밍 가이드)을 참조하십시오. 가상 이벤트를 재정의하는 이벤트는 sealed 이벤트가 될 수도 있습니다. 이렇게 하면 파생 클래스에 대해 이 이벤트가 가상 이벤트가 아닌 것으로 지정됩니다. 마지막으로, 이벤트를 abstract로 선언할 수 있습니다. 이렇게 하면 컴파일러에서 add 및 remove 이벤트 접근자 블록이 생성되지 않습니다. 따라서 파생 클래스에서 자체 구현을 제공해야 합니다.

C# 언어 사양

자세한 내용은 C# 언어 사양을 참조하십시오. 이 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.

참고 항목

작업

방법: 대리자 조합(멀티캐스트 대리자)(C# 프로그래밍 가이드)

참조

C# 키워드

add(C# 참조)

remove(C# 참조)

한정자(C# 참조)

개념

C# 프로그래밍 가이드

기타 리소스

C# 참조