C# Nullable Explicit cast required

标签 c#

    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 _successbool? , 右边的操作数正在返回 bool? ,而不是 bool .

关于C# Nullable Explicit cast required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8188865/

相关文章:

c# - iTextSharp A4 尺寸四舍五入

c# - 桥接来自两个绑定(bind)源的 DependencyProperty

c# - Xamarin - 来自另一个页面/ View 的 WebView 更新 URL

c# - 如何在c#中使用lexicon字典

c# - 这是什么意思 : Loaded += MyWindow_Loaded;

c# - XML 解析错误 - 使用 C# 的 Salesforce 批量 API

c# - 在 C# 中查找图像中的颜色

c# - 如何在 log4net 中以编程方式添加 remotingappender

c# - 我如何使用 .NET ColorMatrix 更改颜色?

c# - 如何使用 Interop C# 隐藏 Excel 列和行