Was macht ?? Symbol bedeutet in C # .NET? [Duplikat]

8

Ich habe eine Codezeile gesehen, die angibt -

%Vor%

Ich möchte die genaue Bedeutung dieser Zeile wissen (d. h. ?? part) ..

    
Bibhas Debnath 18.02.2010, 16:02
quelle

5 Antworten

19

Es ist der Koaleszenzoperator null : Es gibt das erste Argument zurück, wenn es nicht null ist, und das zweite Argument andernfalls. In Ihrem Beispiel wird str ?? string.Empty im Wesentlichen verwendet, um leere Zeichenfolgen für leere Zeichenfolgen zu vertauschen.

Dies ist besonders bei NULL-Typen hilfreich, da hier ein Standardwert angegeben werden kann:

%Vor%

Bearbeiten: str ?? string.Empty kann in Form des bedingten Operators als str != null ? str : string.Empty umgeschrieben werden. Ohne den Bedingungsoperator müssten Sie eine ausführlichere if-Anweisung verwenden, z. B .:

%Vor%     
Will Vousden 18.02.2010, 16:04
quelle
9

Es wird der Nullkoaleszenzoperator genannt. Mit dieser Option können Sie den ersten Nicht-Null-Wert aus einer Kette auswählen:

%Vor%

Der Wert in result ist entweder der Wert von nickname , wenn es nicht null ist, oder "<default>" .

    
Igal Tabachnik 18.02.2010 16:04
quelle
4

Es ist ein Äquivalent von

%Vor%     
Marek Karbarz 18.02.2010 16:04
quelle
3

Das ?? Der Operator sagt, dass er mir den Nicht-Null-Wert zurückgibt. Also, wenn Sie den folgenden Code haben:

%Vor%

Der obige Code gibt "John Doe" zurück, da der Wert von firstName null ist.

Das ist es!

    
azamsharp 18.02.2010 16:10
quelle
1
%Vor%

könnte wie folgt geschrieben werden:

%Vor%

oder als ternäre Aussage:

%Vor%     
GateKiller 18.02.2010 16:07
quelle

Tags und Links