Häufige Fehler Pt2: Default Values missverstehen

In C # können Werttypen (standardmäßig) nicht null sein. Per Definition enthalten Werttypen einen Wert, und selbst nicht initialisierte Variablen von Wertetypen muss einen Wert haben. Wir reden vom Standardwert dieses Types. Dies führt zu dem folgenden, in der Regel unerwartete Ergebnis bei der Prüfung, ob eine Variable nicht initialisiert sei:

class Program {
      static Point punktA;
      static Pen pen1;
      static void Main(string[] args) {
          Console.WriteLine(pen1 == null);      // ergibt true
Console.WriteLine(punktA == null); // ergibt false } }


Warum wird punktA nicht null? Die Antwort ist, Point ist ein Werttyp, und der Standardwert für einen Punkt ist (0,0), nicht null.Jenes nicht zu erkennen ist ein häufiger Fehler im C# Kontext. Viele (aber nicht alle) Werttypen haben eine IsEmpty-Eigenschaft, auf die Sie prüfen können.


Console.WriteLine(point1.IsEmpty) // True




Wenn Sie überprüfen wollen ob eine Variable initialisert wurde oder nicht, vergewissern sie sich welchen
Wert eine nicht initialisierte Variable dieses Typs standardmäßig hat und verlassen sie sich nicht darauf
dass dieser Wert null ist. Und für mehr Informationen besuchen sie doch einen Kurs bei der ppedv.

Kommentare sind geschlossen