C#事宜用法實例淺析。本站提示廣大學習愛好者:(C#事宜用法實例淺析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#事宜用法實例淺析正文
本文實例講述了C#事宜用法。分享給年夜家供年夜家參考。詳細剖析以下:
EventHandler<TEventArgs>的界說以下
public delegate void EventHandler<TEventArgs>(object sender,TEventArgs e) where TEventArgs:EventArgs
第一個參數必需是object類型(是一個對象,包括事宜的發送者)
第二個參數是T類型(即泛型),界說了一個T的束縛,它必需派生自基類EventArgs
CardInfoEventArgs 就派生自基類EventArgs
舉例
#region 測試事宜1 //EventArgs類 public class CardInfoEventArgs : EventArgs { public string Car { get; private set; } public CardInfoEventArgs(string car) { this.Car = car; } } //觸發事宜的類 public class CarDealer { public event EventHandler<CardInfoEventArgs> NewCardInfo; public void NewCar(string car) { Console.WriteLine("CarDealer,new car{0}", car); //在觸發事宜之前,須要檢討拜托NewCardInfo能否不為空。 //假如沒有定閱處置法式,拜托就是空 if (NewCardInfo != null) { NewCardInfo(this, new CardInfoEventArgs(car)); } } } //處置事宜的類 public class Consumer { private string name; public Consumer(string name) { this.name = name; } //處置事宜的辦法 public void NewCarIsHere(object sender, CardInfoEventArgs e) { Console.WriteLine("{0}:car {1} is new", name, e.Car); } } #endregion private void button_測試事宜1_Click(object sender, EventArgs e) { CarDealer dealer = new CarDealer(); Consumer michael = new Consumer("Michael"); dealer.NewCardInfo += michael.NewCarIsHere; //定閱事宜 dealer.NewCar("寶馬"); Consumer nick = new Consumer("Nick"); dealer.NewCardInfo += nick.NewCarIsHere; //定閱事宜 dealer.NewCar("奔跑"); dealer.NewCardInfo -= michael.NewCarIsHere; //撤消定閱事宜 dealer.NewCar("奧迪"); }
測試成果截圖
願望本文所述對年夜家的C#法式設計有所贊助。