如何识别Type是否为自定义结构?

Yin*_*ing 7 .net reflection struct types

对于a Type,有一个属性IsClass,但如何知道a Type是一个结构?

对不起,我必须添加更多信息.

  1. 我正在使用C#.
  2. 虽然IsValueType是必要条件,但显然还不够.对于Integer,也是值类型.

Jon*_*nna 10

t.IsValueType && !t.IsPrimitive && !t.IsEnum;
Run Code Online (Sandbox Code Playgroud)

  • 有时在C#中我们将它们视为这样,因为它们是值类型,但`struct`来自"结构化",指的是结构的复合性质(通常有多个字段,但0或1是允许的)和起源尽管C#和C结构在几个方面有所不同.从问题中可以清楚地看出,OP正在考虑后者而不是前者.这种观点并没有采取"乌龟一直向下"的观点,而是采取不能进一步细分的单位,而不是结构. (2认同)

Joh*_*lla 1

如果它是值类型(例如 a struct),请使用Type.IsValueType