C# 消息框在释放模式下不工作

C# 消息框在释放模式下不工作,c#,C#,我在C#windows窗体应用程序中有以下代码 if (myGrid.Rows.Count != 0) { // do something } else { MessageBox.Show("Test"); } 消息框在调试模式下显示,但不在发布模式下显示。知道为什么吗 我对其他代码也有类似的问题 比如说 if (!myParameter) this.mycheckBox.Enabled = false; else this.mycheckBox.E

我在C#windows窗体应用程序中有以下代码

if (myGrid.Rows.Count != 0)
{
     // do something
}
else
{
     MessageBox.Show("Test");
}
消息框在调试模式下显示,但不在发布模式下显示。知道为什么吗

我对其他代码也有类似的问题

比如说

 if (!myParameter)
     this.mycheckBox.Enabled = false;
 else
     this.mycheckBox.Enabled = true; 
以上代码在调试模式下工作,而不是在发行版中。不知道为什么


感谢您在发布模式下使用myGrid.Rows.Count!=0必须为真,请尝试放置另一个
消息框。在那里显示

可能是因为您的if语句在发布模式下为真

移除if并保留
MessageBox.Show(“测试”)这应该可以正常工作

编辑

您甚至可以更进一步,在if语句处放置一个断点并查看返回的值。这对两段代码都适用。

尝试将MessageBox或断点放在所有if语句之前。您要测试的参数值是多少


如果这没有任何意义,那么创建一个新的、空的winForms项目,并将其放入一个无条件的messagebox中。如果这样做有效,开始一段一段地将旧代码添加到其中,并观察它在哪里中断。

设置一个中断点,看看它是否达到条件。BPs在发布模式下工作,仅供参考。它不符合条件。我不明白。你知道
this.myCheckBox.Enabled=myParameter
是一种更好的编码方式,不是吗?是的,我知道-它也不能与这个.myCheckBox.Enabled=myParameter一起工作。我试着点击一个BP,得到的消息是“当前不会命中断点。没有与此行关联的可执行代码。可能的原因包括:条件编译或编译器优化。我没有找到任何可以更改的设置来修复此问题。不一定-我的网格有时可能是空的。我有类似的问题与其他代码(编辑后)。你知道为什么吗?谢谢。虽然我的网格可以是空的,但当您在代码中点击该点时,if语句返回true并点击空块。在“我的编辑”中,放置一个断点(如果您有调试器),然后查看myGrid.Rows.Count返回的值。还有,我的参数是bool吗?当它点击if(!myParameter)时是否设置为true?