我的對象上使用反射調用靜態方法?我認爲他們默認會是價值。第一個參數(數組中的「Parameter1」)應該是ref,但我不知道如何通過它。在使用反射調用靜態方法時,如何通過ref傳遞參數?</p> <pre><code>MyType.GetMethod("MyMethod", BindingFlags.Static).Invoke(null, new object[] { Parameter1, Parameter2 }); </code></pre> <p>你如何由參按值傳遞的參數,而在於:
12
A
回答
16
對於參考參數(或在C#中輸出),反射會將新值複製到與原始參數相同位置的對象數組中。您可以訪問該值以查看更改後的參考。
public class Example {
public static void Foo(ref string name) {
name = "foo";
}
public static void Test() {
var p = new object[1];
var info = typeof(Example).GetMethod("Foo");
info.Invoke(null, p);
var returned = (string)(p[0]); // will be "foo"
}
}
1
如果你打電話Type.GetMethod
和使用的BindingFlag
只是BindingFlags.Static
,它不會找到你的方法。刪除標誌或添加BindingFlags.Public
,它會找到靜態方法。
public Test { public static void TestMethod(int num, ref string str) { } }
typeof(Test).GetMethod("TestMethod"); // works
typeof(Test).GetMethod("TestMethod", BindingFlags.Static); // doesn't work
typeof(Test).GetMethod("TestMethod", BindingFlags.Static
| BindingFlags.Public); // works
相關問題
- 1. 如何傳遞UnsafeMutablePointer類型的參數<UnsafePointer <Void>>
- 2. 如何將參數傳遞給HXT箭頭以及如何使用 - <<
- 3. 如何將參數傳遞給kendo的javascript函數<a href=""></a>
- 4. 錯誤傳遞工會作爲參數的操作符<<
- 5. 如何將參數傳遞給<ant ../>調用?
- 6. 無法在DisplayTag中通過<s:a>傳遞參數
- 7. 將ArrayList <SomeClass>傳遞給參數ArrayList中的方法<Comparable>
- 8. 如何將參數傳遞給msfconsole -r resource.rc <arg1><arg2>
- 9. 類型列表<Object[]>中的方法addAll(Collection <?extends Object []>)不適用於參數(列表<String>)
- 10. 如何調用它的參數是一個類<Object>和Class <Map>
- 11. 如何使用Func <T, bool>作爲Func <object,bool>的參數?
- 12. jqGrid與<delete>按鈕:我無法傳遞參數
- 13. 將std :: shared_ptr << std :: vector <double>>傳遞給函數
- 14. 傳遞可調用<T>與參數
- 15. 如何將參數傳遞給Activator.CreateInstance <T>()
- 16. 如何傳遞類型參數<T[]> java
- 17. 如何在活動之間傳遞ArrayList <ArrayList <customtype>>
- 18. 傳遞類<?>參數使用犀牛
- 19. 通過引用傳遞HashSet <string>參考
- 20. 重建使用通過$ _GET</p> <p>傳遞的值與$ _GET值
- 21. 如何通過html <object>影片參數將QueryString參數傳遞給Flash swf?
- 22. 如何通過網站參數SeleniumGrid我使用<strong>C#</strong>,<strong>MbUnit的</strong>和<strong>硒電網</strong>實例
- 23. jQuery的參考<object>
- 24. 執行方法和動作<T>使用反射參數
- 25. Powershell參數列表傳遞像-a <args list> -d <args list>
- 26. 理解隱含<<參數
- 27. A <:<SomeType參數聲明
- 28. </p> <pre><code>console.log(new Buffer(12)) </code></pre> <p>如何使用的console.log
- 29. 問題在傳遞參數<xsl:每個
- 30. 將一個ArrayList <CustomObject>傳遞給一個函數,該函數接受參數ArrayList <Object> in Java
你說得對。謝謝。不是我原來的問題的來源,但仍然是一個問題。 – Deane 2009-04-24 18:11:41