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