private bool? _success;
public bool Success
{
get
{
return _success ?? (_success = false);
}
}
为什么编译器无法找出正确的操作数始终为 false,并要求我将其转换为 bool
?
最佳答案
右操作数是 Nullable<bool>
因为你要分配给 bool? _success
.这不能隐式转换为 bool,这就是为什么需要转换的原因。
如果您删除分配,那么它将正常工作:
return _success ?? false;
这是因为“假”是一个 bool
已经。
但是,您当前的代码返回 _success
在为其赋值 false
之后. As _success
是 bool?
, 右边的操作数正在返回 bool?
,而不是 bool
.
关于C# Nullable Explicit cast required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188865/