C# 이벤트 위임
만약에 하나의 클래스(MailManager)가 전자메일을 수신한다고 가정하면MailManager 클래스는 새로운 메일을 받을 때 뉴스메일 이벤트를 촉발하여 메일을 메일 처리 대상(Fax 클래스와 Pager 클래스의 대상)에 나누어 준다.
첫 번째 단계: 메일의 모든 메일 처리 대상(Fax 클래스와 Pager 클래스에 보내는 대상)에 대한 정보를 수용할 유형을 정의한다.
class NewMailEventArgs:EventArgs//
{
private string from;//
private string to;//
private string subject;//
public NewMailEventArgs(string from,string to,string subject)
{
this.from = from;
this.to = to;
this.subject = subject;
}
public string From{get{return from;}}
public string To{get{return to ;}}
public string Subject{get{return subject;}}
}
2단계: 위임 유형 정의
delegate void MyEventHandler(NewMailEventArgs e);//
//CLR
//
3단계: MailManager 클래스에서 이벤트 구성원 정의
class MailManger
{
public event MyEventHandler NewMail;//
public void OnNewMail(NewMailEventArgs e)// ,
{
if (NewMail != null)
{
NewMail(e);
}
}
}
4단계: Fax 클래스 및 Pager 클래스에서 이벤트 처리 방법 정의
class Fax
{
public void Mail(NewMailEventArgs e)
{
Console.WriteLine(" :"+e.From+" "+e.To+" "+e.Subject);
Console.WriteLine("Fax !!!!!!!");
}
}
class Pager
{
public void Mail(NewMailEventArgs e)
{
Console.WriteLine(" :" + e.From + " " + e.To + " " + e.Subject);
Console.WriteLine("Pager !!!!!!!");
}
}
Fax 클래스와 Pager 클래스가 받은 이벤트 알림 정보는 같지만 처리 방법은 다를 수 있습니다.
아날로그 수신 메시지:
MailManger mail = new MailManger();
NewMailEventArgs e = new NewMailEventArgs("me"," "," !!!");//
Fax fax = new Fax();
Pager pager = new Pager();
mail.NewMail += new MyEventHandler(pager.Mail);//
mail.NewMail += new MyEventHandler(fax.Mail);
mail.OnNewMail(e);//
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.