完善主體資料,免費贈送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波多野一区二区| 亚洲一区二区影院| 国产成人av一区二区三区在线 | 日韩精品无码一区二区三区AV| 一区二区三区亚洲| 国产伦理一区二区三区| 成人无码一区二区三区| 国产精品揄拍一区二区| 免费国产在线精品一区| 精品亚洲AV无码一区二区| 国偷自产视频一区二区久| 久久精品一区二区三区中文字幕| 亚洲一区二区三区在线观看蜜桃 | 精品福利一区二区三| 无码人妻精品一区二区三区久久久 | 久久国产高清一区二区三区| 亚洲AV成人一区二区三区在线看| 好吊视频一区二区三区| 国产天堂在线一区二区三区| 亚洲视频一区二区在线观看| 无人码一区二区三区视频| 无码av中文一区二区三区桃花岛 | 精品人妻一区二区三区浪潮在线| 狠狠色婷婷久久一区二区三区 | 中文字幕人妻AV一区二区| 亚洲av午夜福利精品一区人妖| 中文字幕亚洲乱码熟女一区二区| 在线一区二区三区| 精品无码中出一区二区| av在线亚洲欧洲日产一区二区| 日本精品一区二区三区在线视频一 | 国产一区二区三区在线免费| 国产精品亚洲一区二区三区在线观看| 亚洲国产AV一区二区三区四区| 久久中文字幕无码一区二区| 国产主播一区二区三区在线观看 | 蜜桃无码一区二区三区|