.NET 4.51
我试图声明一个方法,我可以在其中通过我的参数aListOfClasses viz传递类列表:
public static class MyClass
{
public static void MyCall(List<**WhatDoIPutHere**> aListOfClasses)
{
foreach (var item in aListOfClasses)
{
var typeInfo = typeof (item);
}
}
}
因此,如果我说了一堆没有共同基础的类:
public class ClassOne
{
}
public class ClassTwo
{
}
我希望能够如下调用我的方法
var myListOfClasses = new List<????>();
myListOfClasses.Add(ClassOne);
myListOfClasses.Add(ClassTwo);
MyClass.MyCall(myListOfClasses);
所以我的问题是:
如何声明aListOfClasses?是什么类型的?
最佳答案
您可以这样声明您的方法:
public static void MyCall(List<Type> aListOfClasses)
{
foreach (var item in aListOfClasses)
{
var typeInfo = item; // no need for typeof again
}
}
并定义您的列表,例如:
var myListOfClasses = new List<Type>();
myListOfClasses.Add(typeof(ClassOne));
myListOfClasses.Add(typeof(ClassTwo));