可能重複:
Which is preferred: Nullable<>.HasValue or Nullable<> == null?安全並正確地從Nullable中提取價值?
我在使用以下兩種形式的「安全地」獲取值出可空類型的代碼庫工作。例如,如果foo
是可空(INT):
if (foo != null) {
value = (int)foo;
}
if (foo.HasValue) {
value = foo.Value;
}
我傾向於第二種形式,但沒有任何特殊背景下這可能使第一(或第二,對於這個問題),在肯定首選其他?
是的,如果編譯器符合規範(版本3.0第7.9.9節「相等運算符和空值」),那麼它*是*保證編譯器將使用Value屬性。 – phoog
@phoog:很好。它是C#4規範中的第7.10.9節。將編輯。 –