回答
使这种类型让我们假设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. 如何使用类型变量的泛型方法调用(C#)
- 3. 传递变量类型,泛型方法
- 4. 泛型类型的调用方法?
- 5. 泛型类型的调用方法
- 6. 调用泛型方法的类型
- 7. 调用泛型方法并调用返回类型的方法
- 8. Swift调试泛型类型变量
- 9. 调用静态类的方法传递动态变量的类型与泛型
- 10. 如何使用泛型类型参数调用泛型方法
- 11. F#调用带有类型变量
- 12. 类型不可知类在泛类中调用泛型和非泛型方法?
- 13. 从非泛型类的泛型方法派生泛型方法
- 14. Java - 启动不具有泛型类型的泛型变量;
- 15. Java - 带有3种类型的有界类型的泛型方法:String,StringBuilder,StringBuffer
- 16. 泛型方法,泛型类型不明
- 17. 使用泛型类型的超类的泛型方法?
- 18. 根据泛型方法中的类型调用方法
- 19. 带有泛型类型参数的C#扩展方法
- 20. 将扩展方法应用于泛型类型泛型类型
- 21. 非泛型类中的泛型方法?
- 22. 非泛型类中的泛型方法
- 23. 如何处理Java方法中变量的类型泛型?
- 24. C#泛型 - 从一个普通类调用泛型方法
- 25. 调用的泛型类型从抽象父类List的方法
- 26. 基本的泛型方法以及如何从非泛型类调用方法?
- 27. 调用泛型方法
- 28. 调用Java泛型方法
- 29. vb调用泛型方法
- 30. C#调用泛型方法
你可以在你试图使用它的地方显示一些代码吗?这是可能的,所以它可能是一个语法错误。 – RPM1984 2010-10-18 09:21:01