2013-07-29 61 views
0

如果我有這樣的代碼:c#中委託數據結構中的+ =/- =均值是多少?

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

什麼是+=嗎?

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

-=是做什麼用的?

+0

請閱讀http://csharpindepth.com/Articles/Chapter2/Events.aspx –

回答

5

閱讀上events

+=運營商在這種情況下調用事件add訪問者,而-=調用remove訪問者。這通常被稱爲訂閱取消訂閱到事件。

實現事件的常用方法是擁有一個支持多播委託的支持字段,在這種情況下,類型爲Genetico.NewBestGroupTourEventHandler。所提到的訪問者在這個多播委託字段的「調用列表」中添加和刪除。

0

它們是用於添加和刪除事件的編譯器縮寫。

+1

速記,是的,但也是在C#中執行此操作的唯一合法語法(無視反射)。 –

+0

我想我的意思是「編譯速記」。我必須告訴我當地的barrista讓我早上的咖啡變得更強壯:) –

1

它用於訂閱/取消訂閱(綁定/取消綁定)到一個事件。

genetic.foundNewBestGroupTour += genetico_foundNewBestGroupTour 

訂閱人數(綁定)的事件處理程序,以便每當foundNewBestGroupTour事件針對genetic提出的方法genetico_foundNewBestGroupTour將被調用。

genetic.foundNewBestGroupTour -= genetico_foundNewBestGroupTour; 

取消訂閱(取消綁定)處理程序。執行此代碼後,將在genetic上發生foundNewBestGroupTour事件時不再調用方法genetico_foundNewBestGroupTour

進一步閱讀