Valores predeterminados de los tipos de C# (referencia de C#)

En la tabla siguiente se muestran los valores predeterminados de los tipos de C#:

Tipo Valor predeterminado
Cualquier tipo de referencia null
Cualquier tipo numérico entero integrado 0 (cero)
Cualquier tipo numérico de punto flotante integrado 0 (cero)
bool false
char '\0' (U+0000)
enum Valor generado por la expresión (E)0, donde E es el identificador de enumeración.
struct El valor generado al establecer todos los campos de tipo de valor en sus valores predeterminados y todos los campos de tipo de referencia en null.
Cualquier tipo de valor que acepta valores NULL Instancia para la que la propiedad HasValue es false y la propiedad Value no está definida. Este valor predeterminado también se conoce con el valor null de un tipo de valor que acepta valores NULL.

Expresiones de valor predeterminado

Use el operador default para producir el valor predeterminado de un tipo, como se muestra en el ejemplo siguiente:

int a = default(int);

Puede usar el literaldefault para inicializar una variable con el valor predeterminado de su tipo:

int a = default;

Constructor sin parámetros de un tipo de valor

Para un tipo de valor, el constructor sin parámetros implícito también genera el valor predeterminado del tipo, como se muestra en el ejemplo siguiente:

var n = new System.Numerics.Complex();
Console.WriteLine(n);  // output: (0, 0)

En tiempo de ejecución, si la instancia de System.Type representa un tipo de valor, puede usar el método Activator.CreateInstance(Type) para invocar el constructor sin parámetros y obtener el valor predeterminado del tipo.

Nota:

En C# 10 y versiones posteriores, un tipo de estructura (que es un tipo de valor) puede tener un constructor sin parámetros explícito que puede generar un valor no predeterminado del tipo. Por tanto, se recomienda usar el operador default o el literal default para generar el valor predeterminado de un tipo.

Especificación del lenguaje C#

Para más información, vea las secciones siguientes de la Especificación del lenguaje C#:

Vea también