鑑於典型的編碼咒語是「不要在方法調用中誘發副作用」。並且唯一的原因(我知道 - 請指教我,如果我錯了)不使用短路操作符的時候,是在隨後的代碼中依賴方法調用的副作用。爲什麼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
C#確實使用短路評估。這就是說,這個問題看起來像是一個重複的http://stackoverflow.com/questions/1445867/why-would-a-language-not-use-short-circuit-evaluation – jjlin 2012-02-05 06:09:16