最近在技术测试中询问了这个问题:
以下哪些是值类型:
int idouble dstruct S
{
int a;
string b;
}enum Test
{
a,
b,
c,
d
}我认为这是一个棘手的问题; int和double是结构体,结构体是ValueTypes,因此所有答案都是值类型.但只允许一个答案,显然"正确"答案是4)枚举.
无论如何,答案4)可能是唯一正确的答案吗?
所有四个答案都是值类型:
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
Run Code Online (Sandbox Code Playgroud)