我有几种类型:
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() };
这种方法很麻烦,因为它需要专门为这种用途准备ClassA
和ClassC
。
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) };