可能重复:
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节。将编辑。 –