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简单的测试无法帮助我了解它的行为,在不同的情况下,它可能会做一些意想不到的事情。