if/else vs三元运算符

Pal*_*Dot 5 if-statement operators ternary-operator conditional-operator micro-optimization

考虑到评估时间,以下是两个相当的?

if(condition1)
{
    //code1
}
else
{
    //code2
}
Run Code Online (Sandbox Code Playgroud)

condition1 ? code1 : code2

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

Gro*_*roo 11

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

例如,如果您有以下声明:

if (SomeCondition())
{
    text = "Yes";
}
else
{
    text = "No";
}
Run Code Online (Sandbox Code Playgroud)

使用三元运算符,您将写:

text = SomeCondition() ? "Yes" : "No";
Run Code Online (Sandbox Code Playgroud)

注意第一个示例如何基于条件执行语句,而第二个示例根据条件返回值.