我希望创建一个自定义的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