if(val1 == val2)vs if(val1!= val2)

时间:2015-09-09 01:22:49

标签: c# optimization operators

我一直在编写一个测试值If Item.SenderName = 的程序,并检查它是否为' 0' 0或不。 (如果没有,它将来自1-9)

我想知道(0<=value<=9)==是否会更快/更好(我相信这会在机器代码级别?),如果还有其他有效方法可以做到这一点,或者如果没有任何区别。

提出透视:

!=

或者...

if (value == 0)
{
     //do something
}
else
{
    //do something else
} 

PS:我的程序多次重复此代码,因此即使很小的差异也会影响我的程序。

2 个答案:

答案 0 :(得分:2)

这称为微观级别优化。我怀疑你在任何一种情况下都会遇到很多不同。但是,!= IL代码看起来比== IL代码小。

enter image description here

答案 1 :(得分:1)

有一个更普遍的问题(不是c#特定的)已经发布和回答。看一看。

Is the inequality operator faster than the equality operator?

顺便说一下,在我的意见中,如果你要比较整数,那么你使用的运算符并不重要,因为它们以相同的速度运行。