程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#事宜用法實例淺析

C#事宜用法實例淺析

編輯:C#入門知識

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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved