Evita ELSE quando imposti una variabile? [chiuso]

4

Quale di questi stili preferiscono le persone?

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

VS

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

VS

mystring = condition? "othervalue" : "defaultvalue";
    
posta Ian1971 23.08.2011 - 14:08
fonte

8 risposte

9

Mentre le persone avranno preferenze, non importa se confrontate con uno stile particolare seguito in modo coerente, sempre .

Direi, entrambi hanno bisogno di {} di parentesi graffe per evitare che il codice venga aggiunto in modo errato:

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

Alcune persone potrebbero vederlo come eccessivo, ma a me sembra preferibile fare un semplice passaggio che prevenga i facili difetti.

    
risposta data 23.08.2011 - 14:15
fonte
7

Preferirei il primo stile solo perché è più breve e comunque leggibile. A seconda della lingua, penso che la scelta 3 sia ancora migliore:

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

o

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

perché ti permette di trasformare mystring in una variabile immutabile, che ha alcuni vantaggi.

    
risposta data 23.08.2011 - 14:14
fonte
5

Il primo stile è di 3 righe rispetto a 5 linee e non sembra meno chiaro o leggibile; è una preferenza facile dal mio punto di vista.

    
risposta data 23.08.2011 - 14:11
fonte
3

Come molti altri, personalmente preferisco anche la prima versione. Una ragione non menzionata finora: rende chiaro quale sia il valore predefinito (e il percorso di esecuzione).

Ma nel complesso, la differenza non è drammatica, posso vivere anche con la seconda versione (e lo faccio, poiché ce ne sono molti nella nostra app precedente).

    
risposta data 23.08.2011 - 14:17
fonte
3

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

più intuitivo per me:)

    
risposta data 23.08.2011 - 14:24
fonte
1

Preferisco il primo stile quando esiste un valore predefinito conosciuto che si verificherà a meno che qualcos'altro sia vero. Se non ci sono impostazioni predefinite, allora userò il secondo stile.

    
risposta data 23.08.2011 - 14:18
fonte
1

La prima forma è superiore, in quanto offre una maggiore forma di sicurezza delle eccezioni. Se condition o qualche altro codice prima del lancio dell'assegnazione, la stringa non avrà il valore che si presume che lo farà.

    
risposta data 23.08.2011 - 14:31
fonte
0

Non mi piace molto mystring = condition? "othervalue" : "defaultvalue"; ma è solo una preferenza personale e forse non sono abituato a vederlo (la mia lingua è Delphi).

Gli altri sono un po 'sballottati e spesso lo lascio dipendere dalla distanza (numero di linee) tra la dichiarazione della variabile e la condizione. Breve: l'inizio con il valore predefinito. Più righe ci sono tra la dichiarazione e la condizione, più mi proverò ad avere un valore nullo o vuoto nella dichiarazione e un'istruzione if-else completa per l'assegnazione del valore.

    
risposta data 23.08.2011 - 14:36
fonte

Leggi altre domande sui tag