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

wii*_*und 1 c# if-statement conditional-operator

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

newSpeed = newSpeed > maxSpeed ? maxSpeed : newSpeed;
Run Code Online (Sandbox Code Playgroud)

要么

if (newSpeed > maxSpeed)
{
    newSpeed = maxSpeed;
}
Run Code Online (Sandbox Code Playgroud)

Red*_*ter 8

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

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

  • 这个,但是,三元分配只是变成IL等价的if-else语句,编译器可能会发现"else"块是多余的并且摆脱它. (3认同)