我有一个模型中的 bool 变量,如下所示。
bool Foo;
我正在从服务器接收数据并将其反序列化为模型对象。因此,所有在服务器数据中不存在的字段都将被初始化为默认值。default(bool)
是false。
但是,对于我的变量Foo
,值false
也是可接受的值。那么有没有办法检查它是否从服务器得到了值false
或默认值。
我还遇到了其他类型(如int,double等)的相同问题,这些类型不会默认为空。
如果是我,我会使用 Nullable<bool>
(bool?
)。这样你就能通过以下方式检查值:
bool? Foo;
if(Foo.HasValue)
{
// do something with Foo.Value
}
else
{
// Foo is uninitialized
}
bool? Foo = null;
if (Foo.HasValue)
{
// do something with Foo.Value
}
else
{
// Foo is uninitialized
}
bool?
吗? - Marc Gravell