c#中委托数据结构中的+ = / - =均值是多少?

时间:2013-07-29 22:28:46

标签: c# events delegates threadpool

如果我有这段代码:

genetic = new Genetic();
genetic.foundNewBestGroupTour += new Genetico.NewBestGroupTourEventHandler(genetico_foundNewBestGroupTour);

+=做了什么?

genetic.foundNewBestGroupTour -= new Genetico.NewBestGroupTourEventHandler(genetico_foundNewBestGroupTour);

-=做了什么?

3 个答案:

答案 0 :(得分:5)

阅读events

此上下文中的+=运算符调用事件add访问者,而-=调用remove访问者。这通常称为订阅取消订阅

实现事件的常用方法是拥有一个包含多播委托的支持字段,在这种情况下类型为Genetico.NewBestGroupTourEventHandler。提到的访问器在此多播委托字段的“调用列表”中添加和删除。

答案 1 :(得分:1)

它用于订阅/取消订阅(绑定/取消绑定)事件。

genetic.foundNewBestGroupTour += genetico_foundNewBestGroupTour

订阅(绑定)事件处理程序,以便在genetico_foundNewBestGroupTour上引发foundNewBestGroupTour事件时调用方法genetic

genetic.foundNewBestGroupTour -= genetico_foundNewBestGroupTour;

取消订阅(取消绑定)处理程序。执行此代码后,在genetico_foundNewBestGroupTour上引发foundNewBestGroupTour事件时,将不再调用方法genetic

进一步阅读

答案 2 :(得分:0)

它们是添加和删除事件的编译器简写。