2011-02-17 43 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需要什麼參數?