2009-10-22 10 views
44

Możliwe duplikaty:
?? Null Coalescing Operator --> What does coalescing mean?
What do two question marks together mean in C#?Co robi podwójny znak zapytania w języku C#?

nie mogłem znaleźć na to pytanie zadawane jest tu więc pomyślałem Chciałbym go zapytać. Co robi podwójny znak zapytania w języku C#?

przykład:

x = y ?? z; 
+0

ten został poproszony kilka razy: 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

To dostaje ciebie, a każdy, kto odpowie, zanim temat zostanie zamknięty, dużo powtórzeń :) [Zawsze mnie zadziwia, jak szybko zerowy łączący się pytania i odpowiedź dostają rep tutaj ...] –

Odpowiedz

49

to zerowy operatora koalescencyjny. Metoda powyżej stanów x ma przypisaną wartość y, chyba że y jest zerowe, w którym to przypadku przypisuje się wartość z.

7

Jeśli y jest zerowe x zostanie ustawiony z.

6

Jeśli wartość y ma wartość null, wówczas przypisywana jest wartość z.

Na przykład:

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

Jeśli nazwa jest null x będzie miał wartość "No Name"

12

Od Wikipedia:

Jest to operator null COALESCE i skrótem to:

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

.NET Framework 2.0 począwszy zezwolić na wartości null typów wartości pustych.

tutaj w tym przypadku, to mówi x równe y, jeśli to ma jakąś wartość (czyli nie null) albo równa oo