完善主體資料,免費贈送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開發之管道的布管系統配置

      主站蜘蛛池模板: 69福利视频一区二区| 久久精品国产一区二区| 无码人妻啪啪一区二区| 福利一区福利二区| 一区二区三区福利视频免费观看| 精品国产一区二区三区在线 | 日韩人妻不卡一区二区三区| 久久久国产精品一区二区18禁| 精品视频一区二区观看| 无码国产精品一区二区免费 | 国产无吗一区二区三区在线欢| 蜜臀Av午夜一区二区三区| 中文乱码精品一区二区三区| 波多野结衣一区二区| 亚洲国产一区国产亚洲| 中文字幕aⅴ人妻一区二区| 国产福利一区二区在线视频 | 精品国产福利在线观看一区| 在线播放一区二区| 久久国产精品最新一区| 国产精品一区二区久久国产| 一区二区三区国模大胆| 一区二区中文字幕在线观看| 国产综合视频在线观看一区| 日韩AV片无码一区二区不卡| 国模精品视频一区二区三区| 色综合视频一区二区三区44| 中文字幕av一区| 国产品无码一区二区三区在线| AA区一区二区三无码精片| 日韩精品一区二区三区中文精品| 无码人妻视频一区二区三区| 无码国产精品一区二区免费模式 | 理论亚洲区美一区二区三区| 国精产品一区一区三区有限公司| 日本在线视频一区二区三区| 精品国产免费观看一区| 四虎一区二区成人免费影院网址| 激情综合丝袜美女一区二区| 国产精品乱码一区二区三区| 中文字幕亚洲一区二区va在线|