2011-10-22 4 views
1

Je ne suis pas un programmeur C# du tout, mais j'ai besoin d'obtenir certains calculs d'une application C#. Non, je suis tombé sur quelque chose que je ne sais pas si ce que la sortie estQue fait l'instruction suivante?

J'ai la ligne de code suivante

pageSizeFactor = PrintingRequirements.FormSize == FormSize.A4 ? 1 : 2; 

J'ai juste besoin de confirmer si je ne me trompe pas, les moyens ci-dessus ce qui suit, pageSizeFactor = Formsizes, donc si le Formsize est A4 pageSizeFactor sera 1 sinon ce sera 2?

Répondre

6

Oui; si PrintingRequirements.FormSize est FormSize.A4, pageSizeFactor aura 1. Dans le cas contraire, il sera 2.

Cet opérateur (?:) est connu sous le nom the conditional operator. Il est également parfois connu comme l'opérateur ternaire. Sa syntaxe est la suivante:

a ? b : c 

Si a est évaluée à true, le résultat sera b; sinon, ce sera c.

+0

merci pour cela, répond à ma question tout à fait, puisque l'application a beaucoup de ces expressions. – Roland

5

C'est le conditional operator:

result = boolean-expression ? expression-if-true : expression-if-false 

essentiellement if - else en ligne.

1

Une façon simple d'écrire le code que vous avez fourni est:

if (PrintingRequirements.FormSize == FormSize.A4){ 
    pageSizeFactor = 1; 
} else { 
    pageSizeFactor = 2; 
}