简单的问题(我认为):在 C# 中,哪些代码会执行得更快?
newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;
或者
if (newSpeed > maxSpeed)
{
newSpeed = maxSpeed;
}
简单的问题(我认为):在 C# 中,哪些代码会执行得更快?
newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;
或者
if (newSpeed > maxSpeed)
{
newSpeed = maxSpeed;
}
我猜第二个会更快,在某些情况下,因为它并不总是做分配,而第一个总是做分配。
例如,当 时newSpeed <= maxSpeed
,不进行任何赋值,仅进行比较。
正如justnS所说,您需要在编译时将三元运算符转换为if语句,但是如果您使用三元运算符,则需要一个if和一个else部分,而if语句没有else。因此,如果您将代码运行几百万或十亿次,也许会有明显的差异。但没关系,如果你构建一个正常的程序。
在这种情况下,编译器采用三元行并创建一个 if 语句......所以它变成完全相同的东西。
链接: http: //www.dotnetperls.com/ternary