Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La tabella seguente mostra i valori predefiniti dei tipi C#:
| Digitare | Valore predefinito |
|---|---|
| Qualsiasi tipo di riferimento | null |
| Qualsiasi tipo numerico integrale predefinito | 0 (zero) |
| Qualsiasi tipo numerico a virgola mobile predefinito | 0 (zero) |
| bool | false |
| char |
'\0' (U+0000) |
| enumerazione | Valore generato dall'espressione (E)0, dove E è l'identificatore di enumerazione. |
| struct | Valore generato impostando tutti i campi di tipo valore sui valori predefiniti e tutti i campi di tipo riferimento su null. |
| Qualsiasi tipo di valore annullabile | Istanza per la quale la proprietà HasValue è false e la proprietà Value non è definita. Tale valore predefinito è noto anche come valore null di un tipo di valore nullable. |
Espressioni di valore predefinite
Usare l'operatore default per produrre il valore predefinito di un tipo, come illustrato nell'esempio seguente:
int a = default(int);
È possibile utilizzare il letterale default per inizializzare una variabile con il valore predefinito del suo tipo.
int a = default;
Costruttore senza parametri di un tipo di valore
Per un tipo valore, il costruttore implicito senza parametri produce anche il valore predefinito del tipo, come illustrato nell'esempio seguente.
var n = new System.Numerics.Complex();
Console.WriteLine(n); // output: (0, 0)
In fase di esecuzione, se l'istanza di System.Type rappresenta un tipo valore, è possibile usare il metodo Activator.CreateInstance(Type) per richiamare il costruttore senza parametri per ottenere il valore predefinito del tipo.
Nota
Un tipo di struttura (che è un tipo valore) può avere un costruttore esplicito senza parametri che potrebbe produrre un valore non predefinito del tipo. È quindi consigliabile usare l'operatore default o il valore letterale default per produrre il valore predefinito di un tipo.
Specifica del linguaggio C#
Per altre informazioni, vedere le sezioni seguenti della specifica del linguaggio C# :
- valori predefiniti
- costruttori predefiniti
- costruttori di struct senza parametri
- Strutture predefinite automatiche