Dol*_*ola 1 c# if-statement conditional-statements
我有一位同事正在与我争辩说,在if语句中使用时,否定条件更快.我已经争辩说编译器正在优化代码,我们真的不知道这个条件将如何实际结束.
例如,她声称这样做
if(!MyCondition)
Run Code Online (Sandbox Code Playgroud)
比...更快
if(MyCondition)
Run Code Online (Sandbox Code Playgroud)
我搜索过,无法在任何地方找到参考资料.所以,我的问题是:
在if语句中使用条件时,是否真的有提高性能的偏好?或者只是提高可读性?
过早优化是所有邪恶的根源
始终追求可读性.
if ( hasRightXYZ )
Run Code Online (Sandbox Code Playgroud)
VS
if ( ! hasRightXYZ )
Run Code Online (Sandbox Code Playgroud)
在可读性方面没有那么重要.但如果情况变得复杂,总是寻求更高的可读性.
if ( hasRightXYZ || hasRightYZX || hasRightZYX )
Run Code Online (Sandbox Code Playgroud)
VS
if ( ! hasRightXYZ && ! hasRightYZX && ! hasRightZYX )
Run Code Online (Sandbox Code Playgroud)
如果您正在寻求性能改进,那么简单的否定就不是您想要追捕的东西.相当典型的N + 1选择场景或其他一些东西.