假设您有使用通用方法的类。并且您需要通过反射来调用其功能。
public class Sample { public void GenericMethod<T>() { // ... } public static void StaticMethod<T>() { //... } }
假设我们要使用字符串类型调用GenericMethod。
Sample sample = new Sample();//或者您可以通过反射获得实例 MethodInfo method = typeof(Sample).GetMethod("GenericMethod"); MethodInfo generic = method.MakeGenericMethod(typeof(string)); generic.Invoke(sample, null);//由于没有参数,我们传递了null
对于静态方法,您不需要实例。因此,第一个参数也将为null。
MethodInfo method = typeof(Sample).GetMethod("StaticMethod"); MethodInfo generic = method.MakeGenericMethod(typeof(string)); generic.Invoke(null, null);