检查c#中是否初始化了bool变量

时间:2014-09-23 09:27:19

标签: c# boolean

所以我在模型中有这样的bool变量。

bool Foo;

我从服务器接收数据并对其进行反序列化模型对象。因此,服务器数据中没有任何字段被初始化为默认值。 default(bool)是假的。

但值[{1}}也是我的变量false的可接受值。那么有没有办法检查它是否从服务器获取值Foo或其默认值。

我对其他类型也有同样的问题,比如int,double等,它们默认为null。

2 个答案:

答案 0 :(得分:15)

在您的位置,我会将Nullable<bool>bool?)用于您的目的。然后你就可以用这种方式检查价值:

bool? Foo;

if(Foo.HasValue)
{
   // do something with Foo.Value
}
else
{
   // Foo is uninitialized
}

答案 1 :(得分:0)

在我的系统(Microsoft(R)Visual C#编译器版本4.7.3190.0)上,接受的答案不完整:编译器错误。只需要初始化为空变量声明即可。所以:

bool? Foo = null;

if (Foo.HasValue)
{
    // do something with Foo.Value 
}
else
{
    // Foo is uninitialized
}