简单的“反射调用泛型方法”

核心是“MethodInfo.MakeGenericMethod(params Type[] typeArguments)”方法。

  1. 首先定义一个对象。
    public class A {
     
        public T[] B<T>() where T : new()
        {
            return new T[] { new T(), new T() };
        }
     
    }

  2. 调用。
    A a = new A();
    Type t = a.GetType();
    MethodInfo mi = t.GetMethod("B");
    MethodInfo mii = mi.MakeGenericMethod(typeof(System.Data.DataTable));
    object o = mii.Invoke(a, null);

你可能感兴趣的:(泛型方法)