是否可以在运行时检查给定类型是自定义数据类型还是.NET的原始数据类型之一?
我已经在程序集中定义了用户定义的类型,而这些类型都是一些结构体.我需要调用用户定义类型的whome参数的方法是这些结构体.所以这需要在运行时使用反射来调用这些函数之前填写相应的数据.
现在有什么方法可以反思,我们可以通过它来跟踪给定的数据类型是自定义或原始数据类型.我知道IsClass属性,但我的目标用户定义的数据类型不是类,这些公共是STRUCTS.
解决方法
我会去做一些类似的事情:
static bool IsFundamental(this Type type) { return type.IsPrimitive || type.Equals(typeof(string)) || type.Equals(typeof(DateTime)); }
字符串和DateTime作为the types for which IsPrimitive
returns true
添加的选择虽然是一个主观的事情,因为没有绝对的列表…最终的选择是你的(你可能想要包括十进制,例如);并且应该是有记录的(至少在一个评论中,最好是一个XML).