我倾向于这样做,例如接受整数的方法:
DoSomethingWithThisInt((int)dbObj.nullableInteger);
但是我通常也会确保这个代码永远不会发生,除非它有一个值,有时这意味着我必须首先检查null,这需要更多行代码。
有没有更好的方法,或者我只是通过简单的方式做到这一点?
答案 0 :(得分:5)
如果您已在相关代码行之前检查过null,则只需使用
即可dbObj.nullableInteger.Value
与演员相反。
例如,如果默认值也足够(例如0表示整数,false表示布尔值等),那么你可以省略空检查并简单地利用
doObj.nullableInteger.GetValueOrDefault()
答案 1 :(得分:3)
语法基本上有两种选择。使用Nullable<T>
类型的属性,如下所示:
if (dbObj.nullableInteger.HasValue)
{
DoSomethingWithThisInt(dbObj.nullableInteger.Value);
}
或使用C#语言提供的语法糖,这意味着同样的事情:
if (dbObj.nullableInteger != null)
{
DoSomethingWithThisInt((int)dbObj.nullableInteger);
}
你使用哪一个只是一个偏好的问题;我个人更喜欢后者。