Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果你在两个不同的ifs中重复一个可变条件,你能期望什么?_C#_If Statement - Fatal编程技术网

C# 如果你在两个不同的ifs中重复一个可变条件,你能期望什么?

C# 如果你在两个不同的ifs中重复一个可变条件,你能期望什么?,c#,if-statement,C#,If Statement,我有以下资料: string compararcom610b; //Variables.Gcombinadofavdesf is defined in another class if (something) { } else if (Variables.Gcombinadofavdesf == 1) { //do stuff_1 } else if (compararcom610b == "1" && Variables.Gcombinadofavdesf == 1)

我有以下资料:

string compararcom610b;
//Variables.Gcombinadofavdesf is defined in another class

if (something)
{
}
else if (Variables.Gcombinadofavdesf == 1)
{
    //do stuff_1
}
else if (compararcom610b == "1" && Variables.Gcombinadofavdesf == 1)
{
    //do stuff_2
}
假设在这个恰当的时刻,
comparcom610b=1
Variables.Gcombinadofavdef=1
stuff_1
是否与
stuff_2
一样完成


或者只执行
填充\u 1
吗?

因为您使用
else,如果它进入一个块,它将跳过其他块

它将只执行stuff 1




如果您想同时执行这两个命令,请使用以下命令:

if (something)
{
}
else if (Variables.Gcombinadofavdesf == 1)
{
    //do stuff_1
}

if (compararcom610b == "1" && Variables.Gcombinadofavdesf == 1)
{
    //do stuff_2
}

如果Variables.gcombinadovdesf==1,则执行stuff\u 1

否则[else]如果comparcom610b==“1”和Variables.Gcombinadofavdesf==1,则执行步骤2

这更有意义吗

第二个else if上的第二个条件(检查变量.gcombinadovdesf==1的条件)是冗余的。如果Variables.gcombinadovdesf==1,则跳过对其值的第一次检查将导致第二次else。如果为false,则第二次检查也将为false


在一个if-else if-else if。。。else语句组合,将只执行一个。如果if失败之前,您可以将每个额外的if视为一个备份计划。

设置一个断点并对其进行测试不是很容易吗…@Zdravko简单的测试无法帮助我了解它的行为,在不同的情况下,它可能会做一些意想不到的事情。