C#,If语句中的否定条件更快吗?

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语句中使用条件时,是否真的有提高性能的偏好?或者只是提高可读性?

Ste*_*kel 9

过早优化是所有邪恶的根源

始终追求可读性.

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选择场景或其他一些东西.