C# 遍历类型列表并将类型作为参数传递

C# 遍历类型列表并将类型作为参数传递,c#,C#,我有以下问题: 我想遍历一个类型列表,并在循环中将类型作为参数传递给泛型函数,但不知何故,这不起作用。如果真的没有任何方法,我可以硬编码它,但这显然不像使用循环那样“漂亮” 一般方法: public async Task GenericMethod<T>() where T : class { // Does something ... } public异步任务GenericMethod(),其中T:class { //做点什么。。。 } 类型列表: List<Ty

我有以下问题:

我想遍历一个类型列表,并在循环中将类型作为参数传递给泛型函数,但不知何故,这不起作用。如果真的没有任何方法,我可以硬编码它,但这显然不像使用循环那样“漂亮”

一般方法:

public async Task GenericMethod<T>() where T : class
{
    // Does something ...
}
public异步任务GenericMethod(),其中T:class
{
//做点什么。。。
}
类型列表:

List<Type> listOfTypes = new List<Type>() { typeof(classA), typeof(classB) };
listOfTypes=newlist(){typeof(classA),typeof(classB)};
出现问题的迭代:

foreach(Type type in listOfTypes)
{
    await GenericMethod<type>();
}
foreach(类型列表中的类型)
{
等待GenericMethod();
}
错误消息:

CS0118“type”是一个变量,但与类型一样使用

仅供参考:这将有效(硬编码):

等待GenericMethod();

不能将变量类型用作泛型类型参数。可能考虑将方法中的变量类型作为方法参数传递。例:

public async Task GenericMethod(Type varType)
{
    // Does something with: varType ...
}

另外,如果需要在运行时确定对象的类型,则需要将该对象声明为动态

阅读关于反射的内容。你不能那样做。看这里:
public async Task GenericMethod(Type varType)
{
    // Does something with: varType ...
}