我需要做一些重构,我遇到了这个:
if(LoanTerms.RateIncreasable.HasValue && LoanTerms.RateIncreasable.Value) { ... }
并且LoanTerms.RateIncreasable
是类型System.Nullable
所以我想知道我需要.HasValue
检查一下吗?null
在if语句中会被视为false吗?
由于默认bool
值为,false
您可以使用此代码执行您需要的所有操作:
if(LoanTerms.RateIncreasable.GetValueOrDefault()) { ... }
有关更多信息,请查看MSDN上的文档:Nullable(T).GetValueOrDefault().
但要回答你的问题:如果值是(即),读取Value
属性是不合法的,你会得到一个例外.因此,如果您绝对必须阅读,请确保它首先具有值.Nullable
Nullable
null
HasValue == false
Value