null (C#-Referenz)
Das Schlüsselwort null
ist ein Literal, das einen NULL-Verweis darstellt, der auf kein Objekt verweist. null
ist der Standardwert einer Verweistypvariablen. Normale Werttypen dürfen nicht NULL sein, mit Ausnahme von Nullable-Werttypen.
Im Folgenden Beispiel werden einige Verhalten des null
-Schlüsselworts gezeigt:
class Program
{
class MyClass
{
public void MyMethod() { }
}
static void Main()
{
// Set a breakpoint here to see that mc = null.
// However, the compiler considers it "unassigned."
// and generates a compiler error if you try to
// use the variable.
MyClass mc;
// Now the variable can be used, but...
mc = null;
// ... a method call on a null object raises
// a run-time NullReferenceException.
// Uncomment the following line to see for yourself.
// mc.MyMethod();
// Now mc has a value.
mc = new MyClass();
// You can call its method.
mc.MyMethod();
// Set mc to null again. The object it referenced
// is no longer accessible and can now be garbage-collected.
mc = null;
// A null string is not the same as an empty string.
string s = null;
string t = String.Empty; // Logically the same as ""
// Equals applied to any null object returns false.
Console.WriteLine("t.Equals(s) is {0}", t.Equals(s));
// Equality operator also returns false when one
// operand is null.
Console.WriteLine("Empty string {0} null string", s == t ? "equals": "does not equal");
// Returns true.
Console.WriteLine("null == null is {0}", null == null);
// A value type cannot be null
// int i = null; // Compiler error!
// Use a nullable value type instead:
int? i = null;
// Keep the console window open in debug mode.
}
}
C#-Sprachspezifikation
Weitere Informationen erhalten Sie unter C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.
Siehe auch
Zusammenarbeit auf GitHub
Die Quelle für diesen Inhalt finden Sie auf GitHub, wo Sie auch Issues und Pull Requests erstellen und überprüfen können. Weitere Informationen finden Sie in unserem Leitfaden für Mitwirkende.