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 d’énumération. |
struct | Valeur produite en définissant tous les champs de type valeur sur leurs valeurs par défaut et tous les champs de type référence sur null . |
Tout type valeur Nullable | Instance pour laquelle la propriété HasValue est 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 l’illustre 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 de valeur
Pour un type valeur, le constructeur implicite sans paramètre produit également la valeur par défaut du type, comme l’illustre 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 pour obtenir la valeur par défaut du type.
Remarque
Un type de structure (qui est un type valeur) peut avoir un constructeur explicite sans paramètre qui peut produire une valeur non 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# :
- valeurs par défaut
- Constructeurs par défaut
- Constructeurs de structures sans paramètres
- C# 11 - Structs par défaut automatiques