鉴于典型的编码口号是“不要在方法调用中引起副作用”。并且不使用短路运算符的唯一原因(我知道-如果我错了请赐教)是当您依赖后续代码中方法调用的副作用时。为什么 C# 和 VB.NET 等语言中的默认运算符不是短路版本?
IE:
if (Method1() & Method2()) {
}
if Method1 And Method2 then
End if
if (Method1() | Method2()) {
}
if Method1 Or Method2 then
End if
实际上(默认情况下)意味着
if (Method1() && Method2()) {
}
if Method1 AndAlso Method2 then
End if
if (Method1() || Method2()) {
}
if Method1 OrElse Method2 then
End if