所以我有一個像這樣的布爾變量在模型中。檢查是否一個布爾變量在C#中初始化#
bool Foo;
我正在從服務器接收數據並對其進行反序列化。所以無論服務器數據中的哪些字段都被初始化爲默認值。並且default(bool)
是錯誤的。
但值false
也是我的變量Foo
的可接受值。那麼是否有某種方法來檢查它是否從服務器或其默認值獲得值false
。
我也有類似int,double等其他類型的問題,它不默認爲null。
所以我有一個像這樣的布爾變量在模型中。檢查是否一個布爾變量在C#中初始化#
bool Foo;
我正在從服務器接收數據並對其進行反序列化。所以無論服務器數據中的哪些字段都被初始化爲默認值。並且default(bool)
是錯誤的。
但值false
也是我的變量Foo
的可接受值。那麼是否有某種方法來檢查它是否從服務器或其默認值獲得值false
。
我也有類似int,double等其他類型的問題,它不默認爲null。
在你的地方,我會用你的目的Nullable<bool>
(bool?
)。然後你就可以用這種方法檢查數值:
bool? Foo;
if(Foo.HasValue)
{
// do something with Foo.Value
}
else
{
// Foo is uninitialized
}
太好了。謝謝。我不知道這一點。現在我不得不改變我的整個代碼,使這種方式int,double等:( – PratPor 2014-09-23 09:46:31
你有沒有考慮過使用'bool?'? – 2014-09-23 09:30:44
@MarcGravell關於反序列化,如果沒有從服務器發送,值是否爲空而不是false?只想確認一次。 – PratPor 2014-09-23 10:08:36
是的,如果沒有明確指定非空值,則返回null – 2014-09-23 10:12:30