null und void
Der Nullwert wird verwendet, um anzuzeigen, dass dem Datentyp kein Wert zugewiesen wurde. Es handelt sich um einen Referenztyp. void zeigt an, dass kein Typ vorhanden ist ist kein Wert. Der Unterschied zwischen null und void besteht darin, dass void überhaupt nichts ist, während null ein leeres Kästchen ist, in dem sich nichts befindet.
Nullwerte können hier nur Referenztypen zugewiesen werden. Der Referenztyp wird in C auch als „Zeiger“ bezeichnet. Dies ist der Speicherort, an dem sich die Variable befindet gespeichert ist. Wenn Sie eine Variable auf null setzen, wird die Referenz explizit festgelegt und sie zeigt nicht auf einen Speicherort selbst.
Das Zuweisen eines Nullwerts zu einem Werttyp führt zu einem Kompilierungsfehler.
void wird verwendet, um Methodenwerte zurückzugeben. Sein Wesen ist kein Datentyp. Es wird nur verwendet, um anzuzeigen, dass es keinen Datentyp gibt.
System.Nullable
Der Nullwert in C# kann keinem Werttyp zugewiesen werden, und der Werttyp enthält hier Struktur. Der Grund dafür ist, dass Werttypen keine Referenzen enthalten können. Natürlich kann null als „keine“ Referenz von Werttypen nicht referenziert werden. In praktischen Anwendungen führt dies zu einigen Problemen, wenn ein Datentyp int tatsächlich seinen Wert nicht bestimmen kann. Hier müssen Sie nullfähige Typen verwenden.
System.Nullable<int> i = null; Console.WriteLine(i);
Zu diesem Zeitpunkt kann der int-Typ i als Nulltyp deklariert werden. Gleichzeitig sieht das Programmlaufergebnis, dass keine Daten angezeigt werden Zu diesem Zeitpunkt kann der int-Typ als Nulltyp deklariert werden, und im Programmlaufergebnis werden keine Daten angezeigt
System.Nullable<int> i = null; Console.WriteLine(i);
Mit GetType () zum Anzeigen des Typs löst System.NullReferenceException aus ; kann als int? geschrieben werden. Nullable-Typen werden in der ADO.NET-Programmierung häufig verwendet.
Darüber hinaus haben Instanzen des Typs Nullable HasValue-Mitglieder und Value-Mitglieder, wobei HasValue ein Bool-Typ ist, der angibt, ob die Instanz einen Wert hat; Value gibt den Wert der Instanz an, wenn HasValue einen Wert hat Wenn HasVaue „false“ ist, löst die Verwendung von „Value“ die Ausnahme „System.InvalidOperationException“ aus.System.Nullable<int> i = null; Console.WriteLine( i.GetType());
int? i = null; Console.WriteLine(i.HasValue); Console.WriteLine(i.Value);