class A
{
public static void M<T>() { ... }
}
...
Type type = GetSomeType();
然后我需要致电A.M<T>()
type == typeof(T)
反射?
答案 0 :(得分:6)
是的,你需要反思。例如:
var method = typeof(A).GetMethod("M");
var generic = method.MakeGenericMethod(type);
generic.Invoke(null, null);
答案 1 :(得分:4)
因为在运行时已知类型,所以需要使用反射:
Type type = GetSomeType();
var m = typeof(A)
.GetMethod("M", BindingFlags.Static | BindingFlags.Public)
.MakeGenericMethod(type);
m.Invoke(null, null);