Tipps und Tricks rund um .NET und Visual Studio

Motivation: Null-conditional Operator in C# 6.0 und Visual Basic 14
1 Kommentar

Dr. Holger Schwichtenberg (MVP) teilt in der Kolumne „.NETversum“ sein Expertenwissen rund um .NET-Tools und WPF mit. In dieser Ausgabe geht es um Null-conditional Operatoren in C# 6.0 und Visual Basic 14.

Die NullReferenceException gehört sicherlich zu den häufigsten Laufzeitfehlern, die man als Entwickler in .NET sieht – und fast immer ist man dafür selbst verantwortlich. So zu programmieren, kann man als „naiv“ bezeichnen:

var name0 = repository.GetKunde(1).Name.ToUpper();

Denn in diesem Fall könnte

  • die Variable repository den Wert null haben und/oder
  • die Methode GetKunde() könnte null liefern und/oder
  • die Zeichenketteneigenschaft Name könnte null enthalten.

Robuster programmiert, sieht der obige Programmcode so aus:

string name1 = "";
  if (repository != null)
  {
    var kunde = repository.GetKunde(1);
    if (kunde != null)
    {
      if (kunde.Name != null)
      {
        name1 = kunde.Name.ToUpper();
      }
    }
  }

Alle drei oben genannten Fehlerfälle sind damit abgefangen. Der Programmcode ist aber nun deutlich länger geworden.

Etwas prägnanter kann man unter Einsatz der Operatoren ? und ?? den Programmcode so schreiben:

string name2 = "";
if (repository != null)
{
  var kunde = repository.GetKunde(1);
  name2 = (((kunde == null) ? "" : kunde.Name) ?? "").ToUpper();
}

Ein Tipp dazu: Der Operator ?? (Null-coalescing Operator) wurde in C# 2.0 (im Jahr 2005) eingeführt. Er besteht aus zwei Operanden. Wenn der linke Operand nicht den Wert null hat, ist das Ergebnis der Operation der Wert des linken Operanden. Wenn der linke Operand den Wert null hat, ist das Ergebnis der Operation der Wert des rechten Operanden.

Buchempfehlungdotnet_praxis

In den vergangenen Jahren haben Dr. Holger Schwichtenberg und Manfred Steyer im „Windows Developer“ regelmäßig Tipps und Tricks aus ihrem Alltag als Softwareentwickler, Berater und Trainer für .NET- und webbasierte Anwendungen veröffentlicht. Das vorliegende Buch ist eine aktualisierte und deutlich erweiterte Zusammenfassung dieser Tipps und Tricks. Es umfasst sowohl das .NET Framework und seine zahlreichen Teilbibliotheken als auch die beliebte JavaScript-Bibliothek AngularJS sowie die Entwicklungsumgebung Visual Studio und ergänzende Werkzeuge.

Mehr Infos: www.entwickler-press.de/Dotnet-Praxis

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

1 Kommentar auf "Motivation: Null-conditional Operator in C# 6.0 und Visual Basic 14"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Daniel
Gast

Selbst die Alternative geht kürzer:

repository?.GetKunde(1)?.Name?.ToUpper() ?? „test“;

X
- Gib Deinen Standort ein -
- or -