EventArgs 類,表示包含事件數(shù)據(jù)的類的基類,并提供要用于不包含事件數(shù)據(jù)的事件的值。
當(dāng)需要定義的事件中包含事件數(shù)據(jù)時(shí),可以從EventArgs選件類派生自定義事件數(shù)據(jù)類;代碼及結(jié)果如下:
public class InviteEventArgs:EventArgs //自定義事件類 { public string Message; public InviteEventArgs(string msg) //構(gòu)造函數(shù),傳入?yún)?shù) { Message = msg; } } public class Yiqiok //事件發(fā)布者 { public delegate void InviteHandler(object sender, InviteEventArgs e); // 自定義委托類型 public event InviteHandler LolInvite; //使用自定義的委托類型定義事件 public void InviteComing(string msg) //發(fā)出事件 { if(LolInvite!=null) //檢查是否添加了事件處理方法 { // Console.WriteLine(msg); LolInvite(this, new InviteEventArgs(msg)); //觸發(fā)事件 } } } public class Classmate //事件訂閱者 { PRivate string name; public Classmate (string Name) { name = Name; } public void SendResponse(object s,InviteEventArgs e) //事件處理函數(shù),要與自定義委托類型匹配 { Console.WriteLine(e.Message); Console.WriteLine("來自:" + this.name + "的回復(fù): 已經(jīng)收到邀請(qǐng),隨時(shí)可以開始!"); } } public class Start { static void Main() { Yiqiok yiqiok = new Yiqiok();//初始化 Classmate classmate1 = new Classmate("Lna"); Classmate classmate2 = new Classmate("Jim"); Classmate classmate3 = new Classmate("Cry"); Classmate classmate4 = new Classmate("Tom"); yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate1.SendResponse);//訂閱事件 yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate2.SendResponse); yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate3.SendResponse); yiqiok.LolInvite += new Yiqiok.InviteHandler(classmate4.SendResponse); yiqiok.InviteComing("yiqiok:五人開黑來不來???"); //發(fā)出通知 } }結(jié)果:

更多細(xì)節(jié)參考MSDN
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注