首页 > 解决方案 > 如何纠正错误运算符'&&'不能应用于'bool'类型的操作数?和“布尔”

问题描述

这是我的 c# 代码。我在这一行出现错误,因为运算符“&&”不能应用于“布尔”类型的操作数?和“布尔”

if (openFileDialog.ShowDialog() && viewModel.OpenFileCommand.CanExecute(openFileDialog.FileName))
                {
                    viewModel.OpenFileCommand.Execute(openFileDialog.FileName);
                }

请帮我纠正这个错误。

标签: c#mvvm

解决方案


Window.ShowDialog 方法

返回Nullable<Boolean>Boolean 类型的 Nullable 值,它指定活动是被接受 (true) 还是被取消 (false)。返回值是窗口关闭前 DialogResult 属性的值。

问题是ShowDialogis nullable的结果。

但是,您可以通过使用更详细== true的方法来纠正这个问题,然后编译器会理解您想要明确知道它是真的,而不是 null 或 false。不要问我为什么它不喜欢速记版本(我必须深入研究规格)。

无论哪种方式,这是您的解决方案:

if (openFileDialog.ShowDialog() == true && viewModel....)

推荐阅读