2010-07-12 80 views
2

我想檢查一個引用類型是否爲空。我看到兩個選項(_settings是引用類型FooType):檢查:null與default()?

if (_settings == default(FooType)) { ... } 

if (_settings == null) { ... } 

如何這兩個執行不同?

回答

1

我的理解是他們沒有不同。只有當你處理值類型時才重要。

1

沒有什麼不同,但我認爲

if (_settings == null) { ... } 

更清晰。

2

沒有區別,但第二個更具可讀性。使用default的最佳地點是在處理仿製藥時。常見的代碼是return default(T);

0

我肯定會去用特定的檢查對null。因爲如果_settings類的類型發生變化,您可能會遇到參考問題。至少需要更改打破/關閉策略的代碼。

if(_settings == null) {...} 

這個國際海事組織更安全,更清潔。

0

如已提到的,沒有什麼區別......但你可能使用default(<type>)反正來處理它的不是引用類型的案件。通常這只是泛型,但對於一般情況來說,這是一個很好的習慣。