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

本文关键字:方法 调用 类型 列表 | 更新日期: 2023-09-27 18:02:47

  • .净额4.51

我试图声明一个方法,在该方法中,我可以通过参数aListOfClasses传递类列表,即:

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
{
}

我想能够调用我的方法如下L

var myListOfClasses = new List<????>();
myListOfClasses.Add(ClassOne);
myListOfClasses.Add(ClassTwo);
MyClass.MyCall(myListOfClasses);

所以我的问题是:

  1. 如何声明ListOfClasses?类型是什么

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

您可以这样声明您的方法:

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