Was bedeutet "??"?

7

Ich sehe mir den generierten Code von ASP.NET MVC 1.0 an und habe mich gefragt; Was bedeuten die doppelten Fragezeichen?

%Vor%

Siehe auch:

  

?? Null Koaleszierender Operator - & gt; Was bedeutet Koaleszenz?

    
Brian Liang 20.04.2009, 21:10
quelle

6 Antworten

32

Dies ist der Operator null-coalescing . Es wird den Wert auf der linken Seite zurückgeben, wenn dieser Wert nicht Null ist, sonst der Wert auf der rechten Seite (auch wenn es Null ist). Sie werden oft miteinander verkettet und enden mit einem Standardwert.

Lesen Sie diesen Artikel für mehr

    
JoshJordan 20.04.2009, 21:11
quelle
10

Es bedeutet dasselbe wie

%Vor%     
Nathan W 20.04.2009 21:12
quelle
2

Es ist der Null-Koaleszenz-Operator

Von MSDN

  

Das ?? Betreiber heißt der   Null-Koaleszenz-Operator und wird verwendet   Definieren eines Standardwerts für a   Nullable-Werttypen sowie   Referenztypen. Es gibt das zurück   linker Operand, wenn es nicht null ist;   sonst gibt es das Recht zurück   Operand.

     

Ein Nullwerttyp kann einen Wert enthalten,   oder es kann undefiniert sein. Das ??   Der Operator definiert den Standardwert für   zurückgegeben werden, wenn ein Nullable-Typ ist   einem Nicht-Nullable-Typ zugewiesen. Ob   Sie versuchen, einen Nullwert zuzuweisen   Geben Sie einen Wert ein, der keine Nullwerte zulässt   ohne die ?? Betreiber, Sie   generiert einen Kompilierungsfehler. Ob   Sie verwenden einen Cast und den NULL-Wert   Typ ist derzeit undefiniert, ein   InvalidOperationException-Ausnahme   wird geworfen.

     

Weitere Informationen finden Sie unter Nullable   Typen (C # -Programmierhandbuch).

     

Das Ergebnis einer ?? Betreiber ist nicht   als eine Konstante angesehen, auch wenn   beide Argumente sind Konstanten.

    
Russ Cam 20.04.2009 21:11
quelle
2

Es ist der Null-Koaleszenzoperator. Wenn der Wert auf der linken Seite Null ist, wird der Wert auf der rechten Seite zurückgegeben.

    
James Avery 20.04.2009 21:12
quelle
1

Wenn formsAuth null ist, wird der Wert auf der rechten Seite zurückgegeben (new FormsAuthenticationService ()).

    
Otávio Décio 20.04.2009 21:10
quelle
0

Das bedeutet: geben Sie den ersten Wert (z. B. "formsAuth") zurück, wenn NOT NULL ist, oder den zweiten Wert (new FormsAuthenticationService ()):

Marc

    
marc_s 20.04.2009 21:11
quelle

Tags und Links