[英]How do I store a List/Array/ any collection of types. Or type names so they can be passed as a type to a function
例如:
var types = new List<Type>();
types.Add(OneObject);
types.Add(TwoObject);
foreach(var type in types)
{
MyMethodToTest<type>();
}
如果我这样调用该方法,它将起作用:
MyMethodToTest<OneObject>();
MyMethodToTest<TwoObject>();
我可以像上面那样做,但是我很快就会有很多类型,循环会更好
使用反射获取MyMethodToTest
方法,然后使用MakeGenericMethod
:
var method = someType.GetMethod("MyMethodToTest");
foreach(var type in types)
{
method.MakeGenericMethod(type).Invoke(null);
}
您不能混合泛型并键入实例。 相反,您将必须具有以下内容或使用一些反射技术
Public void MyMethodToTest(Type t){}
public Foo: ICoolThing {}
public Bar: ICoolThing{}
MyMethodToTest<Foo>();
MyMmethodToTest<Bar>();
public void MyMethodToTest(ICoolThing target)
您可以使用接口定义通用功能并通过该接口传递吗
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.