null (Referencia de C#)
Actualización: Julio de 2008
La palabra clave null es un literal que representa una referencia null, es decir, una referencia que no apunta a ningún objeto. null es el valor predeterminado de las variables de tipo de referencia. Los tipos de valor normales no pueden ser null. Sin embargo, en C# 2.0 se introdujeron los tipos de valor que aceptan valores NULL. Visite Tipos que aceptan valores NULL (Guía de programación de C#).
En el ejemplo siguiente se muestran algunos comportamientos de la palabra clave null:
class Program
{
class MyClass
{
public void MyMethod() { }
}
static void Main(string[] args)
{
// 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 accsessible 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.
bool b = (t.Equals(s));
Console.WriteLine(b);
// 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.
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
}
Especificación del lenguaje C#
Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.
- 2.4.4.6 El literal null
Vea también
Conceptos
Referencia
Palabras clave de literales (Referencia de C#)
Otros recursos
Tabla de valores predeterminados (Referencia de C#)
Historial de cambios
Fecha |
Historial |
Motivo |
---|---|---|
Julio de 2008 |
Se ha agregado un ejemplo de código. |
Corrección de errores de contenido. |