1
在下面的代碼中還沒有添加註銷事件處理程序的用途是什麼?這樣使用EventHandler有什麼意義?
public class foo
{
private event EventHandler<boo> booCompleted;
public RegisterBooCompletedHandler(EventHandler<boo> newBooCompletedEventHandler, bool forceUnregisterOtherEventHandlers)
{
if (forceUnregisterOtherEventHandlers)
booCompleted = null
booCompleted -= newBooCompletedEventHandler; // <- why do we unregister not added yet event handler?
booCompleted += newBooCompletedEventHandler;
}
}
這可能是要確保有一個與該事件相關聯,沒有預先存在的事件處理程序添加一個之前,或者在這種情況下,確保booCompleted沒有現有的鏈接newBooCompletedEventHandler。 (如果RegisterBooCompletedHandler以某種方式被錯誤地調用兩次,會發生) –