【问题标题】:Operator '==' cannot be applied to operands of type 'bool?' and 'System.Windows.Forms.DialogResult运算符“==”不能应用于“bool”类型的操作数?和'System.Windows.Forms.DialogResult
【发布时间】:2014-10-13 00:10:08
【问题描述】:

当用户单击该表单上的“确定”按钮时,我试图让一个窗口返回值。

我正在尝试使用 this code 作为指导,但我不断收到来自我的标题的错误:

Operator '==' cannot be applied to operands of type 'bool?' and 'System.Windows.Forms.DialogResult'

这是我的代码:

using (var form = new MyNewForm())
{
    if (form.ShowDialog() == DialogResult.OK) //line with error
    {
        string val = form.ReturnValue1;        
        string dateString = form.ReturnValue2;
        //do stuff
    }
}

已经阅读了this 线程,这就是为什么我将if 更改为form.ShowDialog(),但仍然出现错误。

【问题讨论】:

  • 您使用的是 WPF 还是 win 表单? ShowDialog 的签名在两者之间有所不同。
  • @BradleyDotNET 如果它返回布尔值,很确定他在 WPF 中?
  • 如果您阅读了这两篇文章,您应该注意到它们处理的是 winforms 而不是 WPF。
  • 我只是C#的初学者,但你不能把右边的操作数转换成想要的类型吗?
  • 您用作指南的代码是 Winforms,而不是 WPF。两者非常不同。

标签: c# wpf


【解决方案1】:
using (var form = new MyNewForm())
{
 if (form.ShowDialog() ?? false /*== DialogResult.OK*/) //line with error
 {
    string val = form.ReturnValue1;        
    string dateString = form.ReturnValue2;
    //do stuff
 }
}

使用空合并运算符??

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多