回答
使這種類型讓我們假設foo是在課堂測試中聲明,如
public class Test
{
public void Foo<T>() { ... }
}
您需要先使用實例化類型爲bar
的方法210。然後使用反射調用它。
var mi = typeof(Test).GetMethod("Foo");
var fooRef = mi.MakeGenericMethod(bar);
fooRef.Invoke(new Test(), null);
感謝親切......只是我需要! – 2010-10-18 09:58:18
您可以通過
typeof(Foo<>).MakeGenericType(bar);
如果我正確理解你的問題,你已經在本質上,以下類型定義:
public class Qaz
{
public void Foo<T>(T item)
{
Console.WriteLine(typeof(T).Name);
}
}
public class Bar { }
現在,給你有一個變量bar
定義爲這樣:
var bar = typeof(Bar);
然後,您希望能夠撥打Foo<T>
,用您的實例變量bar
替換T
。
方法如下:
// Get the generic method `Foo`
var fooMethod = typeof(Qaz).GetMethod("Foo");
// Make the non-generic method via the `MakeGenericMethod` reflection call.
// Yes - this is confusing Microsoft!!
var fooOfBarMethod = fooMethod.MakeGenericMethod(new[] { bar });
// Invoke the method just like a normal method.
fooOfBarMethod.Invoke(new Qaz(), new object[] { new Bar() });
享受!
+1 ...比接受的答案晚一點,但是非常棒! – 2010-10-18 09:59:51
@ Daniel Elliot' - 是的,我知道 - 41秒後。我希望我稍微更詳細的答案會佔上風,但唉。 ;-) – Enigmativity 2010-10-18 10:13:23
我的代碼得到工作,詳細的最佳答案....謝謝 – 2016-02-16 10:45:55
- 1. 傳遞變量類型,泛型方法
- 2. 調用靜態類的方法傳遞動態變量的類型與泛型
- 3. 如何使用泛型類型參數調用泛型方法
- 4. 類型不可知類在泛類中調用泛型和非泛型方法?
- 5. 從非泛型類的泛型方法派生泛型方法
- 6. Java - 啓動不具有泛型類型的泛型變量;
- 7. Java - 帶有3種類型的有界類型的泛型方法:String,StringBuilder,StringBuffer
- 8. 帶有泛型類型參數的C#擴展方法
- 9. 將擴展方法應用於泛型類型泛型類型
- 10. 非泛型類中的泛型方法
- 11. 非泛型類中的泛型方法?
- 12. C#泛型 - 從一個普通類調用泛型方法
- 13. 調用的泛型類型從抽象父類List的方法
- 14. 基本的泛型方法以及如何從非泛型類調用方法?
- 15. 調用從泛型方法
- 16. C#調用泛型方法
- 17. 調用Java泛型方法
- 18. 調用泛型方法
- 19. 使用的PropertyInfo爲泛型類型時調用一個泛型方法
- 20. C#泛型類與泛型方法
- 21. C# - 將變量類型傳遞給泛型方法
- 22. 如何有條件地調用帶約束的泛型方法?
- 23. 用c反射的惰性泛型類型的調用方法#
- 24. 如何調用泛型方法知道泛型返回的類型?
- 25. 在運行時確定的泛型類型調用非泛型方法c#
- 26. 帶泛型類型參數的網絡泛型類型
- 27. 如何在java中調用帶泛型返回類型的方法
- 28. Java泛型 - 調用通用類型的特定方法
- 29. 使用嵌套的「?」調用java方法泛型類型
- 30. 如何在類中爲泛型類型調用靜態方法?
你可以在你試圖使用它的地方顯示一些代碼嗎?這是可能的,所以它可能是一個語法錯誤。 – RPM1984 2010-10-18 09:21:01