什么更快:if语句或条件运算符? (C#)

时间:2012-09-28 17:21:19

标签: c# if-statement conditional-operator

简单的问题(我认为):这些代码中的哪一段在C#中执行得更快?

newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;

if (newSpeed > maxSpeed)
{
    newSpeed = maxSpeed;
}

3 个答案:

答案 0 :(得分:8)

我猜第二个会更快,在某些情况下,因为它并不总是做作业,而第一个总是做作业。

例如,newSpeed <= maxSpeed时,没有完成任务,只进行比较。

答案 1 :(得分:0)

在这个实例中,编译器使用三元线并创建一个if语句...所以它会变成完全相同的东西。

链接:http://www.dotnetperls.com/ternary

答案 2 :(得分:0)

你需要像justnS所说的那样,三元运算符将在编译时转换为if语句,但是如果你使用三元运算符,则需要if和else部分,而if语句没有别的。 因此,如果您运行代码几百万或十亿次,那么可能会有明显的差异。 但是,如果你建立一个正常的程序,这没关系。