例如:
var types = new List<Type>();
types.Add(OneObject);
types.Add(TwoObject);
foreach(var type in types)
{
MyMethodToTest<type>();
}
如果我这样调用它,该方法将起作用:
MyMethodToTest<OneObject>();
MyMethodToTest<TwoObject>();
我可以像上面那样做,但我很快会有很多类型,循环会更好
答案 0 :(得分:4)
使用反射获取MyMethodToTest
方法,然后使用MakeGenericMethod
:
var method = someType.GetMethod("MyMethodToTest");
foreach(var type in types)
{
method.MakeGenericMethod(type).Invoke(null);
}
答案 1 :(得分:0)
您无法混合泛型和类似的实例。相反,你必须有类似下面的内容或使用一些反射技术
Public void MyMethodToTest(Type t){}
答案 2 :(得分:0)
public Foo: ICoolThing {}
public Bar: ICoolThing{}
MyMethodToTest<Foo>();
MyMmethodToTest<Bar>();
public void MyMethodToTest(ICoolThing target)
您是否可以使用界面来定义常用功能并通过界面