完善主體資料,免費贈送VIP會員!
      * 主體類型
      * 企業名稱
      * 信用代碼
      * 所在行業
      * 企業規模
      * 所在職位
      * 姓名
      * 所在行業
      * 學歷
      * 工作性質
      請先選擇行業
      您還可以選擇以下福利:
      行業福利,領完即止!

      下載app免費領取會員

      NULL

      ad.jpg

      二次開發教程:C# 泛型弱事件管理器

      發布于:2019-07-25 15:09:47

      網友投稿

      更多

      ,net 4.5 為弱事件提供了新的實現。泛型類 WeakEventManager<TEventSource, TEventArgs>,它派生自基類WeakEventManager,


      大大的簡化了弱事件的處理


              static void Main(string[] args)

              {

                  CarDealer dealer = new CarDealer();

                  Consumer micheal = new Consumer("Micheal");


      //是用下面兩種訂閱事件效果不一樣

                  WeakEventManager<CarDealer, CarInfoEventArgs>.AddHandler(dealer, "NewCarInfo", micheal.NewCarIsHere);

                  //dealer.NewCarInfo += micheal.NewCarIsHere; 

                  dealer.NewCar("Ferrari");

                  micheal = null;

                  GC.Collect();

                  dealer.NewCar("Ferrari");

                  Console.ReadLine();

              }

          }


          public class CarInfoEventArgs:EventArgs

          {

              public CarInfoEventArgs(string car)

              {

                  Car = car;

              }


              public string Car { get; private set; } 

          }


          public class CarDealer

          {

              public event EventHandler<CarInfoEventArgs> NewCarInfo;

              public void NewCar(string car)

              {

                  Console.WriteLine("CarDealer, new car {0}", car);

                  RaiseNewCarInfo(car);

              }

              protected virtual void RaiseNewCarInfo(string car)

              {

                  if(NewCarInfo!=null)

                  {

                      NewCarInfo(this, new CarInfoEventArgs(car));

                  }

              }

          }

          public class Consumer

          {

              private string _name = string.Empty;

              public Consumer(string name)

              {

                  _name = name;

              }


              public void NewCarIsHere(object sender,CarInfoEventArgs e)

              {

                  Console.WriteLine("{0}:Car {1} is new", _name, e.Car);

              }

          }

      本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

      未標題-1.jpg

      上一篇:二次開發教程:Revit開發之管段

      下一篇:二次開發教程:Revit開發之管道的布管系統配置

      主站蜘蛛池模板: 国产午夜三级一区二区三| 日韩av片无码一区二区不卡电影| 国产一区二区三区高清视频| 天堂va在线高清一区| 国产色综合一区二区三区| 视频一区视频二区制服丝袜| 人妻无码一区二区三区AV| 久久精品无码一区二区日韩AV| 国产成人久久一区二区不卡三区 | 精品久久久久中文字幕一区 | 国产一区二区三区91| 一区二区视频在线免费观看| 日本福利一区二区| 国产精品538一区二区在线| 无码国产精品久久一区免费| 亚洲国产韩国一区二区| 91久久精品无码一区二区毛片| 一区二区在线视频| 亚欧在线精品免费观看一区| 国产99久久精品一区二区| 色噜噜狠狠一区二区| 午夜AV内射一区二区三区红桃视| 精品一区二区三区东京热| 亚洲一区二区三区久久| 精品国产一区二区三区四区 | 国产激情з∠视频一区二区| 国产精品日本一区二区不卡视频| 国产一区二区三区久久| 乱精品一区字幕二区| 国产经典一区二区三区蜜芽| 糖心vlog精品一区二区三区| 中文乱码字幕高清一区二区| 在线|一区二区三区| 丰满人妻一区二区三区视频| 无码人妻一区二区三区免费视频 | 国产乱人伦精品一区二区在线观看| 国产福利91精品一区二区| 日本一区二区三区不卡在线视频 | 亚洲一区精品视频在线| 亚洲天堂一区在线| 精品中文字幕一区在线|