C# Vergleichsoperatoren ? : und ??

Oft findet man im Code ewig lange if – else Verzweigungen, die zuviel Platz einnehmen und irgendwann die Übersicht rauben.

Die beiden Operatoren ? : und ??  sehen merkwürdig aus, sind aber in der Handhabung sehr praktikabel.

Der ? : prüft ob der Wert true ist. Falls ja, zählt der linke Wert, wenn nicht, zählt der Wert rechts davon.
[crayon-662aed7f83878439298453/]
Der ??  Operator prüft, ob der Wert null ist. Bei nein, zählt der linke Wert, bei ja der rechte.
[crayon-662aed7f8387f545720351/]

Das ganze in lang könnte so aussehen:
[crayon-662aed7f83881372772275/]
[crayon-662aed7f83883188511487/]
Ab C# 6 soll noch das Feature hinzufügen, dass auch das “Elternobjekt” geprüft werden kann, ob dieser nicht null ist.
[crayon-662aed7f83884463014494/]