最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#事件用法實例淺析

 更新時間:2015年05月16日 12:01:54   作者:永遠愛好寫程序  
這篇文章主要介紹了C#事件用法,以實例形式分析了C#中事件的定義、觸發(fā)及處理相關(guān)技巧,需要的朋友可以參考下

本文實例講述了C#事件用法。分享給大家供大家參考。具體分析如下:

EventHandler<TEventArgs>的定義如下
public delegate void EventHandler<TEventArgs>(object sender,TEventArgs e) where TEventArgs:EventArgs
第一個參數(shù)必須是object類型(是一個對象,包含事件的發(fā)送者)
第二個參數(shù)是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;
}
}
//觸發(fā)事件的類
public class CarDealer
{
public event EventHandler<CardInfoEventArgs> NewCardInfo;
public void NewCar(string car)
{
  Console.WriteLine("CarDealer,new car{0}", car);
  //在觸發(fā)事件之前,需要檢查委托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("奧迪");
}

測試結(jié)果截圖

希望本文所述對大家的C#程序設(shè)計有所幫助。

相關(guān)文章

  • C#連接Oracle數(shù)據(jù)庫的多種方法總結(jié)

    C#連接Oracle數(shù)據(jù)庫的多種方法總結(jié)

    最近小項目當(dāng)中要使用C#來連接Oracle數(shù)據(jù)庫來完成系統(tǒng)的操作,這篇文章主要給大家介紹了關(guān)于C#連接Oracle數(shù)據(jù)庫的多種方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04
  • c#反射表達式樹模糊搜索示例

    c#反射表達式樹模糊搜索示例

    這篇文章主要介紹了c#反射表達式樹模糊搜索示例,反射實體T,非datetime字段反射獲取表達式樹,需要的朋友可以參考下
    2014-02-02
  • C#程序連接數(shù)據(jù)庫及讀取數(shù)據(jù)庫中字段的簡單方法總結(jié)

    C#程序連接數(shù)據(jù)庫及讀取數(shù)據(jù)庫中字段的簡單方法總結(jié)

    包括C#連接Access、Oracle或者SQL Server,這里整理了一些C#連接數(shù)據(jù)庫及從讀取數(shù)據(jù)庫中字段的簡單方法總結(jié),需要的朋友可以參考下
    2016-05-05
  • C#?WinForm?RichTextBox文本動態(tài)滾動顯示文本方式

    C#?WinForm?RichTextBox文本動態(tài)滾動顯示文本方式

    這篇文章主要介紹了C#?WinForm?RichTextBox文本動態(tài)滾動顯示文本方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • WPF實現(xiàn)自定義窗體的示例代碼

    WPF實現(xiàn)自定義窗體的示例代碼

    .Net默認(rèn)的窗體樣式只有四種,而且都比較“丑”,但是很多時候,我們希望自定義窗體,比如,無邊框,有陰影等,所以本文為大家介紹了WPF實現(xiàn)自定義窗體的方法,希望對大家有所幫助
    2023-09-09
  • visio二次開發(fā)--判斷文檔是否已發(fā)生變化(變化就加星號*)

    visio二次開發(fā)--判斷文檔是否已發(fā)生變化(變化就加星號*)

    最近做一個故障樹診斷的項目,用visio二次開發(fā),可以同時打開多個繪制的故障樹圖形文檔。項目中需要實現(xiàn)判斷文檔是否發(fā)生變化,這是很多編輯軟件的基本功能,變化了就加個星號*
    2013-04-04
  • C#開發(fā)微信公眾號接口開發(fā)

    C#開發(fā)微信公眾號接口開發(fā)

    這篇文章主要介紹了C#微信公眾號接口開發(fā),靈活利用網(wǎng)頁授權(quán)、帶參數(shù)二維碼、模板消息,提升用戶體驗之完成用戶綁定個人微信及驗證碼獲取,需要的朋友可以參考下
    2015-07-07
  • C#實現(xiàn)給圖片添加文字水印的示例代碼

    C#實現(xiàn)給圖片添加文字水印的示例代碼

    在某些應(yīng)用項目中,查看電子圖片信息是經(jīng)常使用到的功能,此時我們就需要給顯示在瀏覽器中的圖片添加文字水印版權(quán)或提示信息,下面我們就來看看如何使用C#實現(xiàn)給圖片添加文字水印吧
    2024-04-04
  • Quartz.Net使用方法詳解

    Quartz.Net使用方法詳解

    本文詳細講解了Quartz.Net的使用方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C#實現(xiàn)字符串進制轉(zhuǎn)換方法匯總

    C#實現(xiàn)字符串進制轉(zhuǎn)換方法匯總

    這篇文章主要介紹了C#實現(xiàn)字符串進制轉(zhuǎn)換方法匯總,給大家羅列了十幾種機制轉(zhuǎn)換問題,感興趣的朋友跟隨小編一起看看吧
    2022-11-11

最新評論

通河县| 松原市| 安西县| 南宁市| 宽甸| 秀山| 景宁| 江口县| 台中县| 商洛市| 伊宁市| 元谋县| 蓬溪县| 泰安市| 临清市| 德安县| 乳源| 鹤壁市| 侯马市| 黄平县| 合山市| 凌源市| 师宗县| 神农架林区| 西宁市| 镇远县| 缙云县| 眉山市| 健康| 平顺县| 广昌县| 赤壁市| 宁晋县| 临澧县| 当雄县| 新巴尔虎左旗| 乐都县| 靖边县| 泗洪县| 龙江县| 鲜城|