对于Type
,有一个属性IsClass
,但如何知道Type
是一个结构?
抱歉,我必须添加更多信息。
IsValueType
是必要条件,但显然还不够。对于Integer,也是值类型。 答案 0 :(得分:10)
t.IsValueType && !t.IsPrimitive && !t.IsEnum;
答案 1 :(得分:3)
如果您在谈论c#,可以使用IsValueType
属性。
答案 2 :(得分:1)
如果是值类型(例如,struct
),请使用 Type.IsValueType
。
答案 3 :(得分:1)
您可以使用IsValueType
。
答案 4 :(得分:0)
那么,我想你的要求接近了:
bool isStruct = myType.IsValueType && !myType.IsPrimitive;
但例如,DateTime
仍未涵盖{{1}}。也许你必须手动添加你想要排除的其他类型。
答案 5 :(得分:-1)
使用它:
x.GetType().IsValueType();
来自帮助:
Type :: IsValueType属性 获取一个值,该值指示Type是否为值类型。 值类型是表示为位序列的类型;值类型不是类或接口。值类型在某些编程语言中称为“结构”。枚举是值类型的特例。