2011-01-07 17 views
32

Totale noob qui, quindi sii gentile. Ho cercato ovunque e non riesco a trovare la risposta a questo. Come condensare quanto segue?Unilateralmente se le istruzioni, come convertire questo if-else-statement

if (expression) 
{ 
    return true; 
} 
else 
{ 
    return false; 
} 

Non riesco a farlo funzionare poiché restituisce qualcosa rispetto all'impostazione di qualcosa. Ho già visto cose del genere:

somevar = (expression) ? value1 : value2; 

Come ho detto, si prega di essere gentile :)

risposta

68
return (expression) ? value1 : value2; 

Se value1 e value2 sono in realtà true e false come nel tuo esempio, si può anche basta

return expression; 
+26

Per maggiore chiarezza, questo è chiamato un "operatore ternario" – jcolebrand

+0

Ho dovuto proprio quando ho provato con "ritorno (espressione) valore1: valore2;" ma l'ho messo nel modo giusto. Quindi, ho ricevuto un errore su "codice irraggiungibile" perché non sarebbe mai arrivato a quella dichiarazione. Contento di aver chiesto comunque "espressione di ritorno"; ha più senso ... grazie! – snickered

+4

In realtà 'Ternario' significa semplicemente composto da tre elementi, è chiamato operatore Condizionale. http://msdn.microsoft.com/en-us/library/ty67wk28(v=vs.80).aspx – Joel

7

Tutto quello che avresti bisogno nel vostro caso è:

return expression; 

Il motivo è che l'espressione si restituisce un valore booleano true o false, quindi è superfluo avere un if blocco (o anche un operatore ?:).

+0

Non penso che capisca _why_ così potresti spiegare quella parte, ma sì, questo è quello che farei. – jcolebrand

2

Dal espressione booleana è:

return expression; 
3

Se expression restituisce un valore booleano, si può semplicemente restituire il risultato di esso.

Esempio

return (a > b) 
Problemi correlati