如何从文字中实例化System.Types列表?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从文字中实例化System.Types列表?相关的知识,希望对你有一定的参考价值。

我有几种类型:

public ClassA
{
}

public ClassB
{
}

public ClassC
{
}

现在我想将它们中的一些存储在一个列表中?

我试过的一些失败的方法:

List<System.Type> allowedTypes = new List<System.Type>{ ClassA, ClassC };

List<System.Type> allowedTypes = new List<System.Type>{ System.Type.GetType(ClassA), Systme.Type.GetType(ClassC) };

List<System.Type> allowedTypes = new List<System.Type>{ ClassA.GetType(), ClassC.GetType() };

我所知道的工作方法看起来很麻烦:

List<System.Type> allowedTypes = new List<System.Type>{ new ClassA().GetType(), new ClassB().GetType() };

这种方法很麻烦,因为它需要专门为这种用途准备ClassAClassC

List<System.Type> allowedTypes = new List<System.Type>{ System.Type.GetType("ClassA"), System.Type.GetType("ClassC") };

如果没有办法摆脱这些神奇的弦乐那么好,我想我应该拥抱它们......

答案

正确的方法是typeof expression

List<System.Type> allowedTypes = 
        new List<System.Type>(){ typeof(ClassA), typeof(ClassC) };

以上是关于如何从文字中实例化System.Types列表?的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中实例化一个数组 - 从 VB 转换 [重复]

从一个大参数列表中实例化一个案例类。

Android实例-退出程序

如何从预制件中获取场景中游戏对象的引用

多处理池比手动实例化多个进程慢得多

Android实例-多窗口的切换