2011-02-17 37 views
0

我喜欢与调用问题(委托方法,对象[]参数)参数计数

System.Reflection.TargetParameterCountException一个exeption:参数数量不匹配。 在System.Windows.Forms.Control.MarshaledInvoke(控制呼叫者,委派方法,对象[]指定参数时,布尔同步) 在System.Windows.Forms.Control.Invoke(委托方法,对象[]参数)

但System.Windows.Forms.Control只包含Invoke(Delegate方法,params Object [] args)方法但不包含Invoke(Delegate方法,Object [] args)。我用它像

调用(新SetXDelegate(SETX),值1, 值2)

这是我的问题的原因,我必须使用

调用(新SetXDelegate(SetX),new object [] {value1,value2})?

UPDATE

请建议,如果它更好地使用像

调用((MethodInvoker)委托{ SETX(值1,值2);})

以避免这种问题。

谢谢。

+1

SetXDelegate的外观如何? – 2011-02-17 11:50:10

+0

如果SetX是一个实例方法,那么数组中的第一个对象应该是这个调用的'this',我想。如果它需要2个参数,那么你应该在参数中传递3个值。 – 2011-02-17 13:42:51

回答

2

其实我认为这是抱怨你传递了错误的SetX参数来使用。 SetX需要什么参数?