Partager via


Valeurs par défaut des types C# (référence C#)

Le tableau suivant présente les valeurs par défaut des types C# :

Type Valeur par défaut
Tout type référence null
Tout type numérique intégral intégré 0 (zéro)
Tout type numérique à virgule flottante intégré 0 (zéro)
bool false
char '\0' (U+0000)
enum Valeur produite par l’expression (E)0, où E est l’identificateur de l’enum.
struct Valeur produite en affectant à tous les champs de type valeur leur valeur par défaut et à tous les champs de type référence la valeur null.
Tout type valeur Nullable Instance pour laquelle la propriété HasValue a la valeur false et la propriété Value n’est pas définie. Cette valeur par défaut est également connue sous le nom de valeur null du type valeur pouvant accepter la valeur Null.

Expressions de valeur par défaut

Utilisez l’opérateur default pour produire la valeur par défaut d’un type, comme illustré dans l’exemple suivant :

int a = default(int);

Vous pouvez utiliser le littéral default pour initialiser une variable avec la valeur par défaut de son type :

int a = default;

Constructeur sans paramètre d’un type valeur

Pour un type valeur, le constructeur sans paramètre implicite produit également la valeur par défaut du type, comme le montre l’exemple suivant :

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

Au moment de l’exécution, si l’instance System.Type représente un type valeur, vous pouvez utiliser la méthode Activator.CreateInstance(Type) pour appeler le constructeur sans paramètre afin d’obtenir la valeur par défaut du type.

Notes

Dans C# 10 et versions ultérieures, un type de structure (qui est un type valeur) peut avoir un constructeur sans paramètre explicite qui peut produire une valeur autre que par défaut du type. Par conséquent, nous vous recommandons d’utiliser l’opérateur default ou le littéral default pour produire la valeur par défaut d’un type.

spécification du langage C#

Pour plus d’informations, consultez les sections suivantes de la spécification du langage C# :

Voir aussi