int双结构和enum ValueType

本文关键字:enum ValueType 结构 int | 更新日期: 2023-09-27 18:28:20

这个问题是在最近的一次技术测试中提出的:

以下哪一项是价值类型:

  1. int i
  2. double d
  3. struct S { int a; string b; }
  4. enum Test { a, b, c, d }

我以为这是个恶作剧问题;int和double是structs,structs是ValueTypes,因此所有答案都是Value Types。但只允许一个答案,显然"正确"的答案是枚举。

答案4)是否可以是唯一的正确答案?

int双结构和enum ValueType

也许问题的作者对值类型有不同的定义?

所有四个答案都是值类型:

int integer = 0;
Console.WriteLine(integer.GetType().IsValueType); //true
double dbl = 0.0;
Console.WriteLine(dbl.GetType().IsValueType); //true
S s = new S();
Console.WriteLine(s.GetType().IsValueType); //true
Test t = Test.a;
Console.WriteLine(t.GetType().IsValueType); //true

它们都是值类型。请参阅MSDN上的值类型表。

据我所知,所有这些都是值类型,如本文档中所述。回答你的问题:不,不可能是唯一正确的答案。