c# - 如何纠正错误运算符 '&&' 无法应用于类型 'bool?' 和 'bool' 的操作数

标签 c# mvvm

这是我的 C# 代码。我在该特定行中遇到错误,因为运算符“&&”无法应用于“bool?”类型的操作数和“ bool ”

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

请帮我纠正这个错误。

最佳答案

Window.ShowDialog Method

Returns Nullable<Boolean> A Nullable value of type Boolean that specifies whether the activity was accepted (true) or canceled (false). The return value is the value of the DialogResult property before a window closes.

问题是 ShowDialog 的结果可以为空

但是,您可以通过使用更详细的 == true 来纠正此问题。 ,编译器就会明白您想要明确地知道它是 true,而不是 null 或 false。不要问我为什么它不喜欢速记版本(我必须深入研究规范)。

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

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

关于c# - 如何纠正错误运算符 '&&' 无法应用于类型 'bool?' 和 'bool' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54032722/

相关文章:

c# - 列系列 在 x 轴不同间隔上使用不同颜色填充同一系列?

c# - jQuery 与 WebApi 一起使用 - 甚至不调用 Controller 方法

c# - 在 C# 中线程化时锁定变量

c# - 如何最小化排序运行时的复杂度?

java - 如何在ZK MVVM中使用javascript调用java方法?

c# - 使用 x :Bind 设置 GridView 项目源的 UWP 问题

ios - View 模型应该对 View Controller 中的事件使用react吗?

c# - 使用功能区创建 Windows 应用程序

c# - 延迟控制台应用程序几秒钟的最佳方法是什么

c# - 与 MVVM 文本框中的自定义对象绑定(bind)