C#”;如果是这样,那么不要';t执行此“-有这样的事情吗

本文关键字:执行 如果 | 更新日期: 2023-09-27 18:24:35

例如:

if (riflesRadio.Checked == true || smgsRadio.Checked == true || heavysRadio.Checked == true)
//then don't execute below
{
    if (secondaryList.Enabled == false)
    {
        secondary = "";
        secondarycost = 0;
    }
    if (heavyList.Enabled == false)
    {
        heavys = "";
        heavycost = 0;
    }
    if (primaryList.Enabled == false)
    {
        rifles = "";
        riflecost = 0;
    }
    if (smgList.Enabled == false)
    {
        smgs = "";
        smgcost = 0;
    }
}
//up to here

所以基本上,在我的windows窗体中,如果这些按钮被选中,那么就不要执行下面的行。

我不知道这是否是一个可能的解决方案,但这里有一个错误的GIF示例:http://i.imgur.com/bdX53Qc.gifv选择第一个项目后,它将正确显示定价。但是,当我移动到另一个收音机以启用另一个下拉列表,然后启用上一个列表时,它会将定价显示为0。我知道这是由我上面粘贴的代码引起的,但解决方案是什么?

感谢

C#”;如果是这样,那么不要';t执行此“-有这样的事情吗

只对布尔取反,仅在条件不成立时执行:

if( !(riflesRadio.Checked == true || smgsRadio.Checked == true || heavysRadio.Checked == true) )
{
    //...
}

此外,您可以将表达式简化为:

if( !(riflesRadio.Checked || smgsRadio.Checked || heavysRadio.Checked ) )

或者:

if( !riflesRadio.Checked && !smgRadio.Checked && !heavysRadio.Checked )

或者:

bool noneChecked = !riflesRadio.Checked && !smgRadio.Checked && !heavysRadio.Checked;
if( noneChecked )

您可以简单地恢复if条件:

if (!riflesRadio.Checked && !smgsRadio.Checked && !heavysRadio.Checked)
// then execute below
{
    if (secondaryList.Enabled == false)
    {
        secondary = "";
        secondarycost = 0;
    }
    if (heavyList.Enabled == false)
    {
        heavys = "";
        heavycost = 0;
    }
    if (primaryList.Enabled == false)
    {
        rifles = "";
        riflecost = 0;
    }
    if (smgList.Enabled == false)
    {
        smgs = "";
        smgcost = 0;
    }
}
//up to here

因此,从

如果这三个值中的任何一个是true,则不要执行该

成为

只有在这三个值都是false的情况下,才执行这个

Break!在发生不利事件时,使用break命令终止循环。

*if (this condition)
{
break;
}*