-1

寻找一种在使用 IsPrimitive 和一堆“||”的情况下在 c# 中获取基本/核心类型的方法。基本上我希望包含小数、日期时间、字符串,但我不想专门寻找它们。

我记得看到检查对象的基本类型的效果,看看它是否从对象继承。

有人能指出我正确的方向吗?

此外,此方法如何对原始可空对象进行分类?

4

1 回答 1

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不在列表中,但您可以根据需要添加它)。包括stringanddecimal类型是因为它们可以被认为是基本类型。

于 2013-02-14T17:09:07.603 回答