2009-10-22 15 views
44

Doublons possibles:
?? Null Coalescing Operator --> What does coalescing mean?
What do two question marks together mean in C#?Que fait un double point d'interrogation en C#?

Je ne pouvais pas trouver cette question posée ici je me suis dit et je voudrais donc demander. Que fait un double point d'interrogation en C#?

Exemple:

x = y ?? z; 
+0

cela a été demandé plusieurs fois: http://stackoverflow.com/questions/ 1064074/operator-in-c/http://stackoverflow.com/questions/446835/what-do-two-question-marks-together-mean-in-c – Kirschstein

+1

http://stackoverflow.com/questions/827454/ –

+0

Il vous obtient, et tout le monde qui répond avant le sujet est fermé, beaucoup de représentant :) [Il m'étonne toujours à quelle vitesse des questions coalescing null et réponse obtiennent rep ici ...] –

Répondre

49

Ceci est un opérateur de coalescence nulle. La méthode ci-dessus indique que la valeur de y est affectée à y, sauf si y est nul, auquel cas la valeur de z lui est affectée.

7

Si y est nul x seront fixés à z.

6

Si la valeur y est nulle, la valeur z est affectée.

Par exemple:

x = Person.Name ?? "No Name"; 

Si le nom est null x aura la valeur "No Name"

12

De Wikipedia:

Il est l'opérateur nul soudent et un raccourci pour cela:

x = (y != null ? y : z); 
1

framework .Net 2.0 permettent partir des valeurs nulles à des types de valeur nullables.

ici dans ce cas, il est dit x y est égal si elle a une certaine valeur (non nulle) ou bien est égal à z