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?
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.
Und - was ganz cool ist - ?? kann verschachtelt werden, also so was wie:
var value = currentValue ?? defaultValueForUser ?? defaultValueForMachine;