Ho una funzione con più se di (QUESTO NON E 'il codice effettivo)C#:? Espressione
if(n == 1)
m = 1;
if(n == 2)
m = 2;
if(n == 3)
m = 3;
Invece di che ho voluto fare tutto fare in:? Espressione:
(n == 1) ? m = 1;
Ma si dice che la sua attesa di un ':'
mi è familiare con il:? espressione da C++, dove si può semplicemente scrivere:
0.123.(n == 1) ? m = 1 : 0;
Ma 0 non ci vuole qui. Questa è una domanda ridicola e non riesco nemmeno a trovare una risposta in google poiché ignora "?:" Come una parola.
ANSWER: peccato che la risposta fosse nei commenti. Non c'è modo di "non fare nulla" in questa espressione e dovrei usare if-else o switch. Grazie.
Perché non 'm = n'? – Pubby
Sì, è difficile per Google un punto interrogativo. Questo è chiamato operatore ternario. – DOK
Un'istruzione "if" * esegue un'istruzione se viene soddisfatta una condizione *. Un'espressione condizionale * sceglie un'espressione per valutare se una condizione è soddisfatta *, e in C# deve * fare qualcosa con quell'espressione *. (A differenza di C++, dove l'espressione può essere eseguita per i suoi effetti collaterali.) Stai mescolando i due stili insieme in un modo strano; non farlo Di solito è impossibile, e quando è possibile, è molto confuso. Usa un interruttore o un if-else; questo è molto più leggibile. –