다음을 통해 공유


event(C# 참조)

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

예제

다음 예제에서는 EventHandler를 내부 대리자 형식으로 사용하는 이벤트를 선언하고 발생시키는 방법을 보여 줍니다. 제네릭 EventHandler 대리자 형식을 사용하는 방법과 이벤트를 구독하고 이벤트 처리기 메서드를 만드는 방법도 보여 주는 전체 코드 예제는 방법: .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# 프로그래밍 가이드)

참조

C# 키워드

add(C# 참조)

remove(C# 참조)

한정자(C# 참조)

개념

C# 프로그래밍 가이드

기타 리소스

C# 참조