bool? ispurchased = null;
var pospurcahsed= ispurchased ? "1":"2";
它产生异常。
无法隐式转换类型“bool”? '布尔'。明确的
存在转换(您是否缺少演员表?)
我在这里做错了什么?
感谢您的支持和考虑。
这是不允许的,因为不清楚 null 在条件上下文中意味着什么。
Nullable Booleans
可以转换为bool
显式地以便在条件中使用,但如果对象具有 null 值,InvalidOperationException
将被抛出。
因此,在转换为之前检查 HasValue 属性非常重要bool
.
Use like
var pospurcahsed= (ispurchased.HasValue && ispurchased.Value) ?......
可空布尔值与 SQL 中使用的布尔变量类型类似。确保&和|产生的结果运算符与SQL的三值布尔类型一致,提供了以下预定义运算符:
bool? operator &(bool? x, bool? y)
bool? operator |(bool? x, bool? y)
或者你可以使用martin
建议GetValueOrDefault
[感谢马丁指出 ]
GetValueOrDefault 方法返回一个值,即使HasValue
属性为 false(与 Value 属性不同,它会引发异常)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)