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

时间:2015-09-25 07:52:09

标签: c# if-statement conditional-statements

我有一位同事正在与我争辩说,在if语句中使用时,否定条件会更快。我已经争辩说编译器正在优化代码,我们真的不知道这个条件将如何实际结束。

例如,她声称

if(!MyCondition)

if(MyCondition)

我搜索过,无法在任何地方找到参考资料。所以,我的问题是:

在if语句中使用条件时,是否真的有提高性能的偏好?或者只是提高可读性?

1 个答案:

答案 0 :(得分:9)

  

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

始终追求可读性。

if ( hasRightXYZ )

VS

if ( ! hasRightXYZ )

在可读性方面没有那么重要。 但如果情况变得复杂,总是寻求更高的可读性。

if ( hasRightXYZ || hasRightYZX || hasRightZYX )

VS

if ( ! hasRightXYZ && ! hasRightYZX && ! hasRightZYX )

如果您正在寻找性能改进,那么简单的否定就不是您想要追捕的事情。相当典型的N + 1选择场景或其他一些东西。