If statement if/else vs三元运算符

If statement if/else vs三元运算符,if-statement,operators,ternary-operator,conditional-operator,micro-optimization,If Statement,Operators,Ternary Operator,Conditional Operator,Micro Optimization,考虑到评估时间,以下两种方法是否等效 if(condition1) { //code1 } else { //code2 } condition1?代码1:code2 或者它们只是语法上的不同?是&是 唯一的好处是保存代码行。好吧。。。在前一种情况下,您可以使用任意数量或类型(表达式与语句)的代码来代替code1和code2。在后一种情况下,它们必须是有效的表达式。是的,这是两种不同的语法形式,它们的工作方式相同,并且最有可能由编译器发出相同的代码。不同之处在于后一个站可用于根

考虑到评估时间,以下两种方法是否等效

if(condition1)
{
    //code1
}
else
{
    //code2
}
condition1?代码1:code2

或者它们只是语法上的不同?

是&是


唯一的好处是保存代码行。

好吧。。。在前一种情况下,您可以使用任意数量或类型(表达式与语句)的代码来代替
code1
code2
。在后一种情况下,它们必须是有效的表达式。

是的,这是两种不同的语法形式,它们的工作方式相同,并且最有可能由编译器发出相同的代码。

不同之处在于后一个站可用于根据条件返回值

例如,如果您有以下语句:

if (SomeCondition())
{
    text = "Yes";
}
else
{
    text = "No";
}
使用三元运算符,您将写入:

text = SomeCondition() ? "Yes" : "No";

请注意,第一个示例是如何基于条件执行语句的,而第二个示例是如何基于条件返回值的。

不是唯一的示例。第二个变量可用于根据条件将引用绑定到两个不同的对象,第一个变量不能用于此。