C# 이벤트(이벤트)

1695 단어
이벤트
클래스나 대상은 이벤트를 통해 다른 클래스나 대상에게 발생하는 관련 일을 통지할 수 있다.이벤트를 보내는 클래스는'발행자', 이벤트를 받는 클래스는'구독자'라고 부른다.사건은 사실 하나의 특수한 위탁이고 사건에 대한 명성은 사실상 하나의 사유적인 위탁 변수를 성명하는 것이다.
구문
이벤트 선언: public 이벤트 Action 이벤트 이름;
이벤트에 구독 추가: 이벤트 이름 + = 추가할 방법 이름.
이벤트에 대한 가입 취소: 이벤트 이름 - = 취소할 방법 이름.모든 방법을 취소하면 이벤트가null로 설정됩니다.
이벤트 호출: 이벤트 이름 ();이벤트의 호출은 성명 이벤트의 클래스에서만 호출되며, 이 클래스 이외에는 호출할 수 없습니다.
이벤트 기본 형식: 액세스 수식자 이벤트 의뢰 이름 이벤트 이름;코드는 다음과 같습니다.
   public  delegate void delTest();
   public  event  delTest  eventTest;

이벤트 등록(한 이벤트에 여러 방법을 등록할 수 있음)
코드는 다음과 같습니다.
   eventTest += new delTest(method1);
   eventTest += new delTest(method2);

이벤트 개요
1. 발행자가 언제 사건을 일으킬지 확정한다.구독자는 사건에 대해 어떤 응답을 할지 확정한다.
2. 한 사건에 여러 명의 구독자가 있을 수 있다.구독자는 여러 발행자로부터 온 여러 사건을 처리할 수 있다.
3. 구독자가 없는 사건은 영원히 일어나지 않는다.
4. 이벤트는 버튼 클릭이나 그래픽 사용자 인터페이스의 메뉴 옵션과 같은 사용자 작업을 나타내는 데 일반적으로 사용됩니다.
5. 이벤트에 여러 구독자가 있을 때 이 이벤트를 일으킬 때 이벤트 처리 프로그램을 동기화합니다.
6. 네.NET Framework 클래스 라이브러리에서 이벤트는 EventHandler 위임과 EventArgs 기본 클래스를 기반으로 합니다.
이벤트 선언
이벤트는 방법과 마찬가지로 서명이 있고 서명은 이름과 파라미터 목록을 포함합니다.이벤트의 서명은 위임 유형에 의해 정의됩니다. 예를 들어,
public delegate void TestEventDelegate(object sender, System.EventArgs e);

.NET Framework의 이벤트에 대한 서명에서 일반적으로 첫 번째 매개변수는 이벤트 소스를 참조하는 객체이고 두 번째 매개변수는 이벤트와 관련된 데이터를 전송하는 클래스입니다.그러나 C# 언어에서는 이런 형식을 강제로 사용하지 않는다.이벤트 서명이void로 되돌아오기만 하면 다른 방면은 어떠한 유효한 위탁 서명과 같다.클래스에 이벤트를 추가하려면 이벤트 키워드를 사용하고 의뢰 형식과 이벤트 이름을 제공해야 합니다.예를 들면 다음과 같습니다.
public class EventSource
{
    public event TestEventDelegate TestEvent;
    private void RaiseTestEvent() { /* ... */ }
}

좋은 웹페이지 즐겨찾기