Evite ELSE ao configurar uma variável? [fechadas]

4

Quais desses estilos as pessoas preferem?

string mystring = "defaultvalue";
if (condition)
   mystring = "othervalue";

VS

string mystring = null;
if (condtion)
   mystring = "othervalue";
else
   mystring = "defaultvalue";

VS

mystring = condition? "othervalue" : "defaultvalue";
    
por Ian1971 23.08.2011 / 14:08
fonte

8 respostas

9

Embora as pessoas tenham preferências, isso realmente não importa quando comparado a um estilo em particular que é seguido consistentemente, o tempo todo .

Eu diria que ambos precisam de {} chaves para impedir que o código seja adicionado incorretamente:

string mystring = "defaultvalue";
if (condition)
   mystring = "othervalue";
   string anotherVariable = "a value that someone could think is part of the conditional statement";

Algumas pessoas podem ver isso como um exagero, mas parece preferível dar um passo simples que evite defeitos fáceis.

    
por 23.08.2011 / 14:15
fonte
7

Eu prefiro o primeiro estilo só porque é mais curto e ainda legível. Dependendo da linguagem, acho que a opção 3 é ainda melhor:

string mystring = condition ? "othervalue" : "defaultvalue"

ou

string mystring = if (condition) "othervalue"
    else "defaultvalue"

porque permite que você faça do mystring uma variável imutável, que tem alguns benefícios legais.

    
por 23.08.2011 / 14:14
fonte
5

O primeiro estilo é de 3 linhas em comparação com 5 linhas e não parece menos claro ou legível; é uma preferência fácil do meu ponto de vista.

    
por 23.08.2011 / 14:11
fonte
3

Como vários outros, eu pessoalmente também prefiro a 1ª versão. Uma razão não mencionada até agora: deixa claro qual é o valor padrão (e o caminho de execução).

Mas no geral, a diferença não é dramática, eu também posso viver com a segunda versão (e eu também, já que existem muitos deles em nosso aplicativo legado).

    
por 23.08.2011 / 14:17
fonte
3

mystring = condition? "othervalue" : "defaultvalue";

mais intuitivo para mim:)

    
por 23.08.2011 / 14:24
fonte
1

Eu prefiro o primeiro estilo quando há um valor padrão conhecido que ocorrerá a menos que outra coisa seja verdadeira. Se não houver padrão, então usarei o segundo estilo.

    
por 23.08.2011 / 14:18
fonte
1

A primeira forma é superior, pois oferece uma forma maior de segurança de exceção. Se condition ou algum outro código antes da atribuição ser lançado, a string não terá o valor que você supõe.

    
por 23.08.2011 / 14:31
fonte
0

Eu não gosto muito do mystring = condition? "othervalue" : "defaultvalue"; , mas isso é apenas preferência pessoal e talvez não esteja acostumado a vê-lo (minha linguagem é Delphi).

Os outros são jogados para cima e eu geralmente deixo depender da distância (número de linhas) entre a declaração da variável e a condição. Curto: o começo com o valor padrão. Quanto mais linhas houver entre a declaração e a condição, mais eu me inclinarei para ter um valor nulo ou vazio na declaração e uma declaração if-else completa para atribuir o valor.

    
por 23.08.2011 / 14:36
fonte