1

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

newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;

或者

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

3 回答 3

8

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

例如,当 时newSpeed <= maxSpeed,不进行任何赋值,仅进行比较。

于 2012-09-28T17:22:58.350 回答
0

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

于 2012-09-28T18:03:27.810 回答
0

在这种情况下,编译器采用三元行并创建一个 if 语句......所以它变成完全相同的东西。

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

于 2012-09-28T17:23:53.170 回答