2017-07-18 108 views
1

我試圖從代碼中獲取的dll調用方法。
外國方法來調用:當使用「out」參數從dll調用方法時的語法錯誤

​​

當我打電話用下面的代碼的方法:

string errorMessage; 
someMethod.Invoke(activator, new object[] {out errorMessage}); 

我得到以下錯誤 「出的errorMessage」:
語法錯誤,」, 'expected','或'}'

當我忽略out前綴時正確調用該方法本身,並根據我製作的測試正確地分配激活器

這是怎麼回事?

+0

目標框架是4.0。我嘗試了4.5,沒有骰子。 –

回答

1

爲什麼

string errorMessage; 
someMethod.Invoke(activator, new object[] {out errorMessage}); 

將無法​​編譯的原因有兩方面。

  1. out必須針對一個參數來指定,而不是對恰好是被用來初始化的參數的變量。
  2. Invoke方法不帶出參數。

This可能被用來解決您的問題,而不是嘗試使用out