是否有一种情况我不想使用AndAlso
运营商而不是And
运营商?...或者我不想使用OrElse
操作员而不是Or
操作员?
来自MSDN:
短期权衡取舍
短路可以通过不评估不能改变逻辑运算结果的表达式来提高性能.但是,如果该表达式执行其他操作,则短路会跳过这些操作.例如,如果表达式包含对Function过程的调用,则在表达式被短路时不会调用该过程,并且函数中包含的任何其他代码都不会运行.如果您的程序逻辑依赖于任何其他代码,则应该避免使运算符短路.
是否有一种情况我不想使用AndAlso运算符而不是And运算符?
肯定的是:如果你想确保两者表达的双方进行评估.例如,如果双方都是由于某些其他具有副作用的操作而返回布尔值的方法调用,则可能就是这种情况.
但一般情况下,使用AndAlso
/ 在C/C++/C#中OrElse
使用&&
/ ||
,这当然是绝大多数时间.