Operatore di Espressione condizionale

C# è un operatore ternario: operatore di espressione condizionale (? :).      

Sintassi

  • espressione condizionale:
    logico-O-espressione

    logico-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.

Vedere anche

Riferimenti

L'operatore condizionale: ? :