Pregunta

  

Duplicados posibles:
   de utilizar el condicional:? (ternario)
   es el operador condicional lento?

Hola a todos,

Tengo una pregunta bastante simple en los diferentes else if /.

Además de escribir menos código, ¿hay otros beneficios para el uso del operador condicional en comparación con el if / else completo?

¿Hay un aumento de rendimiento, menos código compilado, o cualquier otra cosa que me beneficiaría al usarlo?

Agradecemos su ayuda

Marko

¿Fue útil?

Solución

No se enfoque en escrito menos código ... enfoque en el código que terminan siendo más legible .

A veces una declaración if será más fácil de leer. A veces, el operador condicional será más fácil de leer. Me gusta el operador condicional en los casos en que tiene sentido, en términos de diferentes formas de calcular un valor lógico (por ejemplo, un descuento, basado en la edad de un cliente). No me gusta usarlo de manera contorneados sin embargo -. No hay nada malo con el uso de un completo si / else donde tiene sentido

Vale la pena recordar que el operador nulo coalescencia también ... así que en lugar de:

string shipTo = customer.ShippingAddress != null 
              ? customer.ShippingAddress : customer.BillingAddress;

puede utilizar

string shipTo = customer.ShippingAddress ?? customer.BillingAddress;

Una vez más, sólo es útil en ciertas situaciones -. Pero en esos casos es muy útil

Otros consejos

  

Además de escribir menos código, ¿hay otros beneficios para el uso del operador ternario en comparación con el if / else completo?

Una mejor legibilidad, en algunos casos ... creo que eso es todo.

  

¿Hay un aumento de rendimiento, menos código compilado, o anyhing otra cosa que me beneficiaría al usarlo?

No, nada significativo. Creo que va a compilar generalmente a la misma IL todos modos ...

Así que, finalmente, que sólo debe basar su elección en la legibilidad. Cuando es más fácil de leer para escribir una completa if / else, lo hace. Si se trata de una expresión ternaria muy simple que es fácil de leer, ir a por ello.

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