Valores padrão de tipos C# (referência C#)

A tabela a seguir mostra os valores padrão dos tipos de C#:

Type Default value
Qualquer tipo de referência null
Qualquer tipo numérico integral incorporado 0 (zero)
Qualquer tipo numérico de ponto flutuante incorporado 0 (zero)
Bool false
char '\0' (U+0000)
enum O valor produzido pela expressão (E)0, onde E é o identificador de enum.
estruturar O valor produzido definindo todos os campos de tipo de valor como seus valores padrão e todos os campos de tipo de referência como null.
Qualquer tipo de valor anulável Uma instância para a qual a HasValue propriedade é false e a Value propriedade é indefinida. Esse valor padrão também é conhecido como o valor nulo de um tipo de valor anulável.

Expressões de valor padrão

Use o default operador para produzir o valor padrão de um tipo, como mostra o exemplo a seguir:

int a = default(int);

Você pode usar o default literal para inicializar uma variável com o valor padrão de seu tipo:

int a = default;

Construtor sem parâmetros de um tipo de valor

Para um tipo de valor, o construtor implícito sem parâmetros também produz o valor padrão do tipo, como mostra o exemplo a seguir:

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

Em tempo de execução, se a System.Type instância representa um tipo de valor, você pode usar o Activator.CreateInstance(Type) método para invocar o construtor sem parâmetros para obter o valor padrão do tipo.

Nota

Em C# 10 e posterior, um tipo de estrutura (que é um tipo de valor) pode ter um construtor sem parâmetros explícito que pode produzir um valor não padrão do tipo. Assim, recomendamos usar o default operador ou o default literal para produzir o valor padrão de um tipo.

Especificação da linguagem C#

Para obter mais informações, consulte as seguintes seções da especificação da linguagem C#:

Consulte também