是否有更高效或更好的方法来重写此代码?
if (condition 1 = true)
{
// Call to function 1
}
if (condition 2 = true)
{
// Call to function 2
}
答案 0 :(得分:3)
我认为简短的回答是否定的。答案取决于条件和功能。
答案 1 :(得分:1)
一般来说,没有。
如果被调用的函数重新评估条件,那么可能是的,通过提升函数的一部分来重新评估函数的条件,因为已知条件为真。 (这称为“部分评估”)。
如果condition1和condition2有关系,那么也许是。想象一下,condition1由几个术语组成
c1a and c1b and .. c1n
并且c2由
组成 c2a and c2b and ... c2m
如果c1i的某个子集暗示了c2j的某个子集,那么您可以更有效地评估条件:
if (c1isubset) {
if (c1irest)
{ // call to function 1
}
endif
if (c2jrest)
{ // call to function2)
}
}
当然,可能是c2j的一个子集暗示了c1i的一个子集,然后你就交换了测试的顺序。