C # - Nullables

C # bietet einen speziellen Datentyp, den nullable Typen, denen Sie sowohl normale Wertebereiche als auch Nullwerte zuweisen können.

Sie können beispielsweise einen beliebigen Wert von -2.147.483.648 bis 2.147.483.647 oder null in einer nullable <Int32> -Variablen speichern. Ebenso können Sie in einer Nullable <bool> -Variablen true, false oder null zuweisen. Syntax zum Deklarieren von anullable Typ ist wie folgt -

< data_type> ? <variable_name> = null;

Das folgende Beispiel zeigt die Verwendung von nullbaren Datentypen -

using System;

namespace CalculatorApplication {
   class NullablesAtShow {
      static void Main(string[] args) {
         int? num1 = null;
         int? num2 = 45;
         
         double? num3 = new double?();
         double? num4 = 3.14157;
         
         bool? boolval = new bool?();

         // display the values
         Console.WriteLine("Nullables at Show: {0}, {1}, {2}, {3}", num1, num2, num3, num4);
         Console.WriteLine("A Nullable boolean value: {0}", boolval);
         Console.ReadLine();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Nullables at Show: , 45,  , 3.14157
A Nullable boolean value:

Der Null-Koaleszenz-Operator (??)

Der Null-Koaleszenzoperator wird mit den nullbaren Werttypen und Referenztypen verwendet. Es wird zum Konvertieren eines Operanden in den Typ eines anderen Operanden vom Typ nullable (oder nicht) verwendet, wobei eine implizite Konvertierung möglich ist.

Wenn der Wert des ersten Operanden null ist, gibt der Operator den Wert des zweiten Operanden zurück, andernfalls gibt er den Wert des ersten Operanden zurück. Das folgende Beispiel erklärt dies -

using System;

namespace CalculatorApplication {
   class NullablesAtShow {
      static void Main(string[] args) {
         double? num1 = null;
         double? num2 = 3.14157;
         double num3;
         
         num3 = num1 ?? 5.34;      
         Console.WriteLine(" Value of num3: {0}", num3);
         
         num3 = num2 ?? 5.34;
         Console.WriteLine(" Value of num3: {0}", num3);
         Console.ReadLine();
      }
   }
}

Wenn der obige Code kompiliert und ausgeführt wird, ergibt sich das folgende Ergebnis:

Value of num3: 5.34
Value of num3: 3.14157