我有以下问题:
我想迭代一个类型列表,并在循环中将类型作为参数传递给泛型函数,不知何故,这不起作用。如果真的没有办法,我可以对它进行硬编码,但这显然不会像#34;漂亮"使用循环。
通用方法:
public async Task GenericMethod<T>() where T : class
{
// Does something ...
}
类型清单:
List<Type> listOfTypes = new List<Type>() { typeof(classA), typeof(classB) };
发生问题的迭代:
foreach(Type type in listOfTypes)
{
await GenericMethod<type>();
}
错误讯息:
CS0118&#39; type&#39;是一个变量但是像类型一样使用
仅供参考:这可行(硬编码):
await GenericMethod<classA>();
答案 0 :(得分:0)
您不能将变量类型用作通用类型参数。也许考虑将方法中的变量类型作为方法参数传递。例如:
public async Task GenericMethod(Type varType)
{
// Does something with: varType ...
}
如果您需要在运行时确定对象的类型,则需要将该对象声明为动态