Utilização de operadores ternários no C#

Essas dicas servem para aumentar a produtividade, são basicamente a utilização de operadores ternários no C#, pois muitos desconhecem ou acabam esquecendo como fazer. A utilização desses operadores tem o intuito de deixar o programa mais limpo.

 1. Operador ternário “?”

Este operador não é uma novidade entre os programadores, ele já existe a muito tempo em diversas linguagens, só que as vezes passamos despercebidos na utilização do mesmo. Abaixo segue o exemplo de um if normal:

int x = 1;
int y = 2;
int maior;

if(x > y)
    maior = x;
else
    maior = y;

Este mesmo if poderia ser reescrito utilizando o operador ternário “?”, onde funciona da seguinte forma: (Condição)?(Valor verdadeiro):(Valor falso).

Abaixo segue o mesmo exemplo com o operador ternário:

int x = 1;
int y = 1;
int maior;

maior = (x > y) ? x : y;

O código fica muito mais limpo dessa forma!

2. Operador ternário Null-coalesce “??”

Muito parecido com o anterior este operador trabalha com as avaliações nullables, onde você pode verificar se a variável é nula ou não, veja um trecho com if normal:

object x = null;
object y = new object();
object z;
if(x != null)
    z = x;
else
    z = y;

Acima vimos que estamos fazendo a verificação se a variável é nula ou não, utilizando o Null-coalescepodemos resumir essa verificação, onde vamos fazer a seguinte avaliação, (Objeto)=(Objeto Null)??(Objeto não Null), ele vai fazer a avaliação, se o primeiro objeto realmente estiver nulo então ele retornara o segundo, veja:

object x = null;
object y = new object();

object z = x ?? y;

Dessa forma o código fica bem menor!

Comece a utilizar esses códigos no seu dia a dia, você vai acabar vendo que vai ficar muito melhor de ler e também vai diminuir a quantidade de linhas de seu programa.

Espero ter sido claro no entendimento do código, até mais!

Fonte: http://msdn.microsoft.com/pt-br/library/vstudio/zakwfxx4%28v=vs.100%29.aspx

Posted in Blog, C#, Clean Code and tagged , , , .

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *