Operatore di Espressione condizionale
C# è un operatore ternario: operatore di espressione condizionale (? :).
Sintassi
espressione condizionale:
logico-O-espressionelogico-O espressione ? espressione : espressione condizionale
logico-O-espressione deve avere integrali, il mobile, o un tipo di puntatore.Viene valutata in termini dell'equivalenza a 0.un punto di sequenza segue logico-O-espressione.La valutazione degli operandi prosegue come segue:
se logico-O-espressione non è uguale a 0, espressione viene valutato.Il risultato di valutare l'espressione viene fornito da non terminal espressione.(Ciò significa espressione viene valutato solo se logico-O-espressione è true.)
se logico-O-espressione uguale a 0, espressione condizionale viene valutato.Il risultato dell'espressione rappresenta il valore di espressione condizionale.(Ciò significa espressione condizionale viene valutato solo se logico-O-espressione è false.)
Si noti che uno espressione o espressione condizionale viene valutato, ma non entrambi.
Il tipo del risultato di un'operazione condizionale dipende dal tipo di espressione o espressione condizionale operando, come segue:
se espressione o espressione condizionale è integrale o il tipo mobile (i relativi tipi possono essere diversi), l'operatore consente di eseguire le conversioni aritmetiche normali.Il tipo del risultato è il tipo degli operandi dopo la conversione.
se entrambe espressione e espressione condizionale disporre della stessa struttura, unione o, il tipo di puntatore, il tipo del risultato è la stessa struttura, unione, o un tipo di puntatore.
se entrambi gli operandi hanno tipo void, il risultato è di tipo void.
Se uno degli operandi è un puntatore a un oggetto di qualsiasi tipo e l'altro operando è un puntatore a void, il puntatore all'oggetto viene convertito in un puntatore a void e il risultato è un puntatore a void.
Se uno espressione o espressione condizionale è un puntatore e l'altro operando è un'espressione costante con il valore 0, il tipo del risultato è il tipo di puntatore.
Nel confronto dei tipi per i puntatori, qualsiasi tipo i qualificatori (const o volatile) in digitare cui il puntatore indica è significativi, ma il tipo di risultato eredita i qualificatori da entrambi i componenti di condizionale.
Esempi
Gli utilizzi degli esempi riportati di seguito l'operatore condizionale:
j = ( i < 0 ) ? ( -i ) : ( i );
In questo esempio viene assegnato il valore assoluto di i in j.se i è minore di 0, -i assegnato a j.se i è maggiore o uguale a 0, i assegnato a j.
void f1( void );
void f2( void );
int x;
int y;
.
.
.
( x == y ) ? ( f1() ) : ( f2() );
in questo esempio, due funzioni, f1 e f2e due variabili, x e y, vengono dichiarati.Più avanti nel programma, se le due variabili presentano lo stesso valore, la funzione f1 viene chiamato.In caso contrario, f2 viene chiamato.