我正在實施一個Buthon_Click方法,顧名思義,它正在與事件onclick按鈕一起使用。現在爲了這個方法做我想要的,我需要清除/取消綁定/取消訂閱委託附加到SystemEvents.SessionSwitch
事件。問題是,我想這樣做,而不關心之前已經連接了哪種方法。 舉一個例子:清除事件的優雅方式
SystemEvents.SessionSwitch += new SessionSwitchEventHandler(Methodx);
所以我在做什麼,現在正在創造一個foreach,並通過一切可能去 - 4條:
int [] array={1,2,3,4};
foreach (int n in array)
{
SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SystemEvents_SessionSwitch1);
SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SystemEvents_SessionSwitch2);
SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SystemEvents_SessionSwitch3);
SystemEvents.SessionSwitch -= new SessionSwitchEventHandler(SystemEvents_SessionSwitch4);
}
我找到的代碼有點麻煩和尷尬這種和平,我想知道是否有更「優雅」的方式來做這件事,比如SystemEvents.SessionSwitch == null
或類似的東西會消滅所有連接的方法?
在此先感謝
'SystemEvents'是框架的一部分(在'Microsoft.Win32')。 – 2010-10-26 13:12:32
@Fredrik:謝謝,編輯。 – 2010-10-26 13:22:39