Pergunta

Possíveis duplicatas:
Benefícios do uso do operador condicional ?: (ternário)
O operador condicional é lento?

Olá a todos,

Eu tenho uma pergunta bastante simples sobre as diferentes declarações se/else.

Além de escrever menos código, existem outros benefícios para o uso do operador condicional em oposição à instrução IF/else completa?

Existe um aumento de desempenho, um código menos compilado ou qualquer outra coisa que me beneficiaria ao usá -lo?

Agradeço sua ajuda

Marko

Foi útil?

Solução

Não se concentre escrita Menos código ... Concentre -se no código que você acaba sendo mais legível.

Às vezes um if A declaração será mais legível. Às vezes, o operador condicional será mais legível. Gosto do operador condicional nos casos em que faz sentido, em termos de diferentes maneiras de calcular um valor lógico (por exemplo, um desconto, com base na idade de um cliente). No entanto, não gosto de usá -lo de maneiras complicadas - não há nada de errado em usar um if/outro lugar onde faz sentido.

Vale lembrar o operador de coalescador nulo também ... então, em vez de:

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

você pode usar

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

Novamente, é útil apenas em certas situações - mas nesses casos é realmente útil.

Outras dicas

Além de escrever menos código, existem outros benefícios para o uso do operador ternário, em oposição à instrução IF/else completa?

Melhor legibilidade, em alguns casos ... acho que é tudo.

Existe um aumento de desempenho, um código menos compilado ou qualquer outra pessoa que me beneficiaria ao usá -lo?

Não, nada significativo. Eu acho que geralmente compilará com o mesmo IL de qualquer maneira ...

Então, eventualmente, você só deve basear sua escolha em legibilidade. Quando for mais legível escrever um if/else/else, faça -o. Se for uma expressão ternária muito simples que é fácil de ler, vá em frente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top