寻找一种方法来获取c#中的基本/核心类型,而不使用使用IsPrimitive和一堆“||”。基本上我想要包含decimal,datetime,string,但我不想专门寻找它们。
我记得看到了检查对象基本类型的效果,看看它是否继承自对象。
有人能指出我正确的方向如何做到这一点吗?
此方法如何对原始的nullables进行分类?
答案 0 :(得分:2)
如果您想获得所有基本数据类型的列表(这些类型不是那些基本数据类型,它们的行为与其他结构相比有点不同),您将不得不使用IsPrimitive
。我理解不想使用||
,但IsPrimitive
对我很有意义。
此外,DateTime
没有充分理由被视为基本/原始。 DateTime
只是您的常规结构。
这是我能提出的最佳方法:
List<Type> types = typeof(string).Assembly.GetTypes()
.Where(t => t.IsPrimitive).ToList();
types.Add(typeof(string));
types.Add(typeof(decimal));
这将搜索mscorlib(typeof(string).Assembly
)以查找任何类型,并且仅选择基元(System.DateTime
不在列表中,但您可以根据需要添加它)。包含string
和decimal
类型,因为可以被视为基本类型。