我想檢查一個引用類型是否爲空。我看到兩個選項(_settings是引用類型FooType):檢查:null與default()?
if (_settings == default(FooType)) { ... }
和
if (_settings == null) { ... }
如何這兩個執行不同?
我想檢查一個引用類型是否爲空。我看到兩個選項(_settings是引用類型FooType):檢查:null與default()?
if (_settings == default(FooType)) { ... }
和
if (_settings == null) { ... }
如何這兩個執行不同?
沒有區別。任何參考類型的默認值是null
。
MSDN的C#參考頁面default
關鍵字:https://msdn.microsoft.com/en-us/library/25tdedf5.aspx。
我的理解是他們沒有不同。只有當你處理值類型時才重要。
沒有什麼不同,但我認爲
if (_settings == null) { ... }
更清晰。
沒有區別,但第二個更具可讀性。使用default
的最佳地點是在處理仿製藥時。常見的代碼是return default(T);
我肯定會去用特定的檢查對null。因爲如果_settings
類的類型發生變化,您可能會遇到參考問題。至少需要更改打破/關閉策略的代碼。
if(_settings == null) {...}
這個國際海事組織更安全,更清潔。
如已提到的,沒有什麼區別......但你可能想使用default(<type>)
反正來處理它的不是引用類型的案件。通常這只是泛型,但對於一般情況來說,這是一個很好的習慣。