| 

.NET C# Java Javascript Exception

3
Hallo,

ich bin beim Lesen eines C#-Quelltextes über zwei Fragezeichen gestolpert. Nun frage ich mich, ob das eine Bemerkung des Programmautors darüber sein soll, dass er selbst nicht weiß, was er da tut. Wahrscheinlicher scheint mir aber, dass das ein Operator ist. Nur: Was macht der?

Danke.
20.01.2011
Havoc 33 1 4
2 Antworten
6
Der Operator gibt den dahinter stehenden Ausdruck zurück, wenn der davor stehenden Audruck null ist. Im folgenden Codeausschnitt wird a = c zugewiesen wenn b null ist, sonst a = b.
var a = b ?? c;
20.01.2011
me 1,1k 2 9
3
Ergänzend vielleicht noch: ?? funktioniert (logischerweise) nur bei Referenz- oder Hybridtypen.

Und - was ganz cool ist - ?? kann verschachtelt werden, also so was wie:

var value = currentValue ?? defaultValueForUser ?? defaultValueForMachine;
Golo Roden 21.01.2011
0
Vergleichbar ist das also folgendem:
string RiskyValue = null;
string InCaseOfNullValue = "DatenbankValue ist null";
string Result = "";

Result = RiskyValue;
if (Result == null) Result = InCaseOfNullValue;
21.01.2011
tack 294 1 8
Oder kürzer, als Einzeiler:

Result = RiskyValue != null ? RiskyValue : InCaseOfNullValue;
Golo Roden 21.01.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH