我有一個WebService此事件:C#檢查,如果事件是空
public event FindProductsByCharacteristicsCompletedEventHandler FindProductsByCharacteristicsCompleted
{
[MethodImpl(MethodImplOptions.Synchronized)]
add
{
_findProductsByCharacteristicsCompleted += value;
}
[MethodImpl(MethodImplOptions.Synchronized)]
remove
{
_findProductsByCharacteristicsCompleted -= value;
}
}
和IM然後檢查,如果事件值爲null這個後來在類:
private void OnFindProductsByCharacteristicsOperationCompleted(object arg)
{
var handler = _findProductsByCharacteristicsCompleted;
if (handler == null)
return;
handler(this, new FindProductsByCharacteristicsCompletedEventArgs(completedEventArgs.Results, completedEventArgs.Error, completedEventArgs.Cancelled, completedEventArgs.UserState));
}
爲什麼你覺得你需要檢查事件是否爲空?因爲你不需要根據你的代碼來做到這一點,它不能爲空。提供你訂閱當然的事件。 – 2013-02-08 13:34:45
@Ramhound:如果沒有人訂閱這個事件,它就是'null'。不檢查'null'是一個非常糟糕的主意。 – 2013-02-08 13:42:10
@DanielHilgarth - 然後意識到這一點。事件及其處理程序是兩個完全不同的事情。我也有一個「提供」的聲明是有原因的。 – 2013-02-08 13:43:43