简单的问题(我认为):这些代码中的哪一段在C#中执行得更快?
newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;
或
if (newSpeed > maxSpeed)
{
newSpeed = maxSpeed;
}
答案 0 :(得分:8)
我猜第二个会更快,在某些情况下,因为它并不总是做作业,而第一个总是做作业。
例如,newSpeed <= maxSpeed
时,没有完成任务,只进行比较。
答案 1 :(得分:0)
在这个实例中,编译器使用三元线并创建一个if语句...所以它会变成完全相同的东西。
答案 2 :(得分:0)
你需要像justnS所说的那样,三元运算符将在编译时转换为if语句,但是如果你使用三元运算符,则需要if和else部分,而if语句没有别的。 因此,如果您运行代码几百万或十亿次,那么可能会有明显的差异。 但是,如果你建立一个正常的程序,这没关系。