繁体   English   中英

如何将类型列表传递给C#中的方法调用?

[英]How do I pass a list of types to a method call in C#?

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

所以我的问题是:

  1. 如何声明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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM