c# - 使用 Type 变量调用泛型方法

标签 c# generics

<分区>

我有一个通用的方法

Foo<T>

我有一个类型变量 bar

是否有可能实现类似 Foo<bar> 的东西?

Visual Studio 需要一个类型或 namespace 。

最佳答案

假设 Foo 是在类 Test 中声明的,例如

public class Test
{
   public void Foo<T>() { ... }

}

您需要首先使用 MakeGenericMethod 实例化 bar 类型的方法.然后使用反射调用它。

var mi = typeof(Test).GetMethod("Foo");
var fooRef = mi.MakeGenericMethod(bar);
fooRef.Invoke(new Test(), null);

关于c# - 使用 Type 变量调用泛型方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3957817/

相关文章:

c# - 如何找到列表之间的差异?

c# - 是否可以在不阻止所有表单的情况下使用 ShowDialog?

c# - 适用于 Windows 10 的 HLS 播放器

c# - C# 中的 Nullable<Nullable> 或 Optional<Nullable>

c# - 在游戏中使用正确的多线程

java - <U, T extends U> 和 <T, U super T> 不一样吗?

Java 泛型和多态性

java - GWT 中的泛型和集合,空指针

c# - 确定从泛型类型派生的类型

c# - OAuth。推特。 StatusCode : 403. 需要 SSL。 C#