집 >백엔드 개발 >C#.Net 튜토리얼 >C# 대리자 및 이벤트 설명
서문에서 커미션과 이벤트의 중요성에 대해 어느 정도 이해하셨을 텐데요. 지금은 아직 모호할 수 있지만 제 모국어 시리즈에서는 이러한 개념을 쉽게 이해할 수 있도록 하겠습니다. 우선 위탁에 대해 이야기해보자. 예를 들어 샤오밍이 샤오장에게 티켓 구매를 맡긴 경우를 제외하고는 모든 중국 사람들이 이 의미를 알아야 한다.
하지만 우리 프로그래밍 세계에서는 그게 그렇게 간단할까요? 물론 OO란 무엇일까요? OO는 현실 세계의 추상화입니다. 현실 세계의 모든 것은 OO에서 잘 해석될 수 있습니다. 죄송합니다.
그럼 바로 들어가겠습니다. 학생들이 불편하다고 생각하지 않는다면 인터넷에서 중국어와 영어로 된 GreetingPeople 예제를 살펴보세요.
첫 번째는 C# 구문입니다.
public delegate void BugTicketEventHandler();
대리자는 키워드입니다. [참고: EventHandler는 위임을 선언하는 Microsoft C#의 명명 표준입니다. 가능합니다. 이 명명 습관은 가능한 한 빨리 개발해야합니다 】
그게 위임입니다. 그렇게 간단합니다. 일반적인 방법과 차이점이 무엇인지 볼까요?
public void BuyTicket() { 方法体 }그럼 샤오밍이 샤오장에게 티켓 구매를 맡긴 실제 장면을 살펴볼까요?
BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//小张类 public class MrZhang { //其实买车票的悲情人物是小张 public static void BuyTicket() { Console.WriteLine("NND,每次都让我去买票,鸡人呀!"); } } //小明类 class MrMing { //声明一个委托,其实就是个“命令” public delegate void BugTicketEventHandler(); public static void Main(string[] args) { //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票” BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket); //这时候委托被附上了具体的方法 myDelegate(); Console.ReadKey(); } }델리게이트 선언 메소드입니다. BugTicketEventHandler(델리게이트 메소드)를 추가해야 합니다. 대리자 생성자가 비어 있지 않기 때문입니다. 참고: 대리자의 매개변수와 반환 유형은 위임하려는 특정 메서드와 일치해야 합니다. 예: public 대리자 void BugTicketEventHandler();
public static void BuyTicket()
{ Console.WriteLine("NND, 매번 티켓을 사게 해주세요, 치킨맨!");
}
사실 우리는 프로그램에 myDelegate +를 추가했습니다. = MrZhang.BuyMovieTicket;