Compartilhar via


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

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

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

A linguagem C# faz referência a documentos da versão mais recentemente lançada da linguagem C#. Ele também contém a documentação inicial para recursos em visualizações públicas para a próxima versão do idioma.

A documentação identifica qualquer recurso introduzido pela primeira vez nas três últimas versões do idioma ou nas versões prévias públicas atuais.

Dica

Para descobrir quando um recurso foi introduzido pela primeira vez em C#, consulte o artigo sobre o histórico de versão da linguagem C#.

Expressões de valor padrão

Use o operador default 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 runtime, se a System.Type instância representar um tipo de valor, você poderá usar o Activator.CreateInstance(Type) método para chamar o construtor sem parâmetros e obter o valor padrão do tipo.

Nota

Um tipo de estrutura (que é um tipo de valor) pode ter um construtor explícito sem parâmetros que retorna um valor não padrão do tipo. Para obter o valor padrão de um tipo, use o default operador ou o default literal.

Especificação da linguagem C#

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

Consulte também