从运行时类型创建列表
我想创建一个List,其中T的类型是几个不相关的类(具有相同的构造函数参数),我通过reflection知道。
DataBase = new ArrayList(); foreach (Type T in Types) { DataBase.Add(new List); }
不幸的是,Visual Studio说’无法找到类型或名称空间T’。 有什么方法可以实现这个,或者将一个List转换为输入T? 谢谢,彼得
你可以使用reflection:
List
您可能会混淆类型和Generic Type Parameters的System.Type类,下面是按您希望的方式实现它的代码:
var lt = typeof(List<>); foreach (Type T in Types) { var l = Activator.CreateInstance(lt.MakeGenericType(T)); DataBase.Add(l); }
您可以…使用List
(如果您知道您的类型是引用类型,或者可以接受装箱); 或通过reflection创建一个List 。