我希望創建一個自定義的EventHandler,它可以有任意數量的對象作爲其參數,並且它所獲得的對象事先是未知的。C# - 創建一個可以接受任意數量參數的EventHandler
我知道我可以通過它的Object [],但我想類似的東西
MyEventHandler someCustomEvent(Object obj1, Object obj2, Object obj3)
地方,如果需要的對象的數量可以是0或10。
編輯:
所以感謝我有我來這的意見和答案,
public class FinishedEventArgs : EventArgs {
public Object[] Args{ get; set; }
}
protected void OnFinished(params Object[] args) {
if(this.Finished != null) {
this.Finished(this, new FinishedEventArgs() {
Args = args
});
}
}
它看起來可以接受的?
如何使用'params對象[] args'? – shahkalpesh 2010-10-22 07:22:10
感謝您指出params,幾乎我正在尋找的東西。現在,我將如何使用Kent在他的答案中寫下的最佳做法來使用參數? – 2010-10-22 07:25:34
我們可能會更好地解決導致您使用此當前解決方案的問題,而不是嘗試修復此解決方案。即這個事件處理程序的定義看起來很可疑,那麼它實際上解決了什麼問題?你爲什麼不知道你將傳遞給事件處理程序的對象?爲什麼他們沒有比對象更好的父類?等等。 – 2010-10-22 07:29:50