.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));

09-26 13:56