C# · 12月 23, 2021

c# – 如何确定和检查汇编中的类型是否是使用.NET中的反射的自定义类型或基本类型?

是否可以在运行时检查给定类型是自定义数据类型还是.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).