Valores predeterminados de los tipos de C# (referencia de C#)Default values of C# types (C# reference)

En la tabla siguiente se muestran los valores predeterminados de los tipos de C#:The following table shows the default values of C# types:

TipoType Valor predeterminadoDefault value
Cualquier tipo de referenciaAny reference type null
Cualquier tipo numérico entero integradoAny built-in integral numeric type 0 (cero)0 (zero)
Cualquier tipo numérico de punto flotante integradoAny built-in floating-point numeric type 0 (cero)0 (zero)
boolbool false
charchar '\0' (U+0000)'\0' (U+0000)
enumenum Valor generado por la expresión (E)0, donde E es el identificador de enumeración.The value produced by the expression (E)0, where E is the enum identifier.
structstruct 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.The value produced by setting all value-type fields to their default values and all reference-type fields to null.
Cualquier tipo de valor que acepta valores NULLAny nullable value type Instancia para la que la propiedad HasValue es false y la propiedad Value no está definida.An instance for which the HasValue property is false and the Value property is undefined. Este valor predeterminado también se conoce con el valor null de un tipo de valor que acepta valores NULL.That default value is also known as the null value of a nullable value type.

Use el operador default para producir el valor predeterminado de un tipo, como se muestra en el ejemplo siguiente:Use the default operator to produce the default value of a type, as the following example shows:

int a = default(int);

A partir de C# 7.1, se puede usar el literal default para inicializar una variable con el valor predeterminado de su tipo:Beginning with C# 7.1, you can use the default literal to initialize a variable with the default value of its type:

int a = default;

Para un tipo de valor, el constructor implícito sin parámetros también genera el valor predeterminado del tipo, como se muestra en el ejemplo siguiente:For a value type, the implicit parameterless constructor also produces the default value of the type, as the following example shows:

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.At run time, if the System.Type instance represents a value type, you can use the Activator.CreateInstance(Type) method to invoke the parameterless constructor to obtain the default value of the type.

Especificación del lenguaje C#C# language specification

Para más información, vea las secciones siguientes de la Especificación del lenguaje C#:For more information, see the following sections of the C# language specification:

Vea tambiénSee also