Pregunta

Teniendo en cuenta el tiempo de evaluación, siguiendo dos equivalentes?

if(condition1)
{
    //code1
}
else
{
    //code2
}

condition1 ? code1 : code2

O son simplemente sintácticamente diferente?

¿Fue útil?

Solución

La diferencia es que la última estación se puede utilizar para devolver un valor basado en una condición.

Por ejemplo, si usted tiene un siguiente declaración:

if (SomeCondition())
{
    text = "Yes";
}
else
{
    text = "No";
}

El uso de un operador ternario, que va a escribir:

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

Tenga en cuenta cómo el primer ejemplo ejecuta una instrucción sobre la base de una condición, mientras que el segundo devuelve un valor sobre la base de una condición.

Otros consejos

Bueno ... En el primer caso, usted puede tener cualquier cantidad o el tipo (expresión vs declaración) de código en lugar de code1 y code2. En este último caso, deben ser expresiones válidas.

Sí y Sí.

Sólo el beneficio es para ahorrar líneas de código.

Sí, se trata de dos formas sintácticas diferentes y trabajarán de forma idéntica y la mayoría LIKEY idéntico código será emitida por el compilador.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top