C# 이벤트(이벤트)
클래스나 대상은 이벤트를 통해 다른 클래스나 대상에게 발생하는 관련 일을 통지할 수 있다.이벤트를 보내는 클래스는'발행자', 이벤트를 받는 클래스는'구독자'라고 부른다.사건은 사실 하나의 특수한 위탁이고 사건에 대한 명성은 사실상 하나의 사유적인 위탁 변수를 성명하는 것이다.
구문
이벤트 선언: 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() { /* ... */ }
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.