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.
Il compilatore C# più recente determina la versione di un linguaggio predefinito in base ai framework di destinazione del progetto. Visual Studio non fornisce un'interfaccia utente per modificare il valore, ma è possibile modificarlo modificando il file csproj. La scelta predefinita garantisce l'uso della versione del linguaggio più recente compatibile con il framework di destinazione. È possibile accedere alle funzionalità del linguaggio più recenti compatibili con la destinazione del progetto. Questa scelta predefinita garantisce anche di non usare una versione del linguaggio che richiede tipi o comportamenti di runtime non disponibili nel framework di destinazione. La scelta di una versione del linguaggio più recente rispetto all'impostazione predefinita può causare errori di compilazione e runtime difficili da diagnosticare.
Il riferimento al linguaggio C# documenta la versione rilasciata più di recente del linguaggio C#. Contiene anche la documentazione iniziale per le funzionalità nelle anteprime pubbliche per la versione futura del linguaggio.
La documentazione identifica tutte le funzionalità introdotte nelle ultime tre versioni della lingua o nelle anteprime pubbliche correnti.
Suggerimento
Per trovare quando una funzionalità è stata introdotta per la prima volta in C#, vedere l'articolo sulla cronologia delle versioni del linguaggio C#.
C# 15 è supportato solo in .NET 11 e versioni più recenti. C# 14 è supportato solo in .NET 10 e versioni più recenti. C# 13 è supportato solo in .NET 9 e versioni più recenti. L'uso di una versione del linguaggio C# più recente rispetto alla versione associata al TFM di destinazione non è supportata.
Per informazioni dettagliate sulle versioni di .NET supportate dalle versioni di Visual Studio, vedere la pagina relativa alla compatibilità della piattaforma di Visual Studio .
Impostazioni predefinite
Il compilatore determina un'impostazione predefinita in base a queste regole:
| Destinazione | Versione | Impostazione predefinita della versione del linguaggio C# |
|---|---|---|
| .NET | 11.x | C# 15 |
| .NET | 10.x | C# 14 |
| .NET | 9.x | C# 13 |
| .NET | 8.x | C# 12 |
| .NET | 7.x | C# 11 |
| .NET | 6.x | C# 10 |
| .NET | 5.x | C# 9.0 |
| .NET Core | 3.x | C# 8.0 |
| .NET Core | 2.x | C# 7.3 |
| .NET Standard | 2.1 | C# 8.0 |
| .NET Standard | 2.0 | C# 7.3 |
| .NET Standard | 1.x | C# 7.3 |
| .NET Framework | tutto | C# 7.3 |
Se il progetto è destinato a un framework di preview con una versione della lingua di anteprima corrispondente, la versione della lingua usata è la versione della lingua di anteprima. È possibile usare le funzionalità più recenti con tale anteprima in qualsiasi ambiente, senza influire sui progetti destinati a una versione rilasciata di .NET Core.
Informazioni di riferimento sulle versioni del linguaggio C#
La tabella seguente illustra tutte le versioni del linguaggio C# correnti. I compilatori meno recenti potrebbero non comprendere tutti i valori. Se si installa la versione più recente di .NET SDK, è possibile accedere a tutti gli elementi elencati.
| Valore | Significato |
|---|---|
preview |
Il compilatore accetta tutte le sintassi di linguaggio valide dalla versione di anteprima più recente. |
latest |
Il compilatore accetta la sintassi dalla versione rilasciata più recente del compilatore (inclusa la versione secondaria). |
latestMajoro default |
Il compilatore accetta la sintassi dalla versione principale più recente rilasciata del compilatore. |
15.0 |
Il compilatore accetta solo la sintassi inclusa in C# 15 o versione precedente. |
14.0 |
Il compilatore accetta solo la sintassi inclusa in C# 14 o versione precedente. |
13.0 |
Il compilatore accetta solo la sintassi inclusa in C# 13 o versione precedente. |
12.0 |
Il compilatore accetta solo la sintassi inclusa in C# 12 o versione precedente. |
11.0 |
Il compilatore accetta solo la sintassi inclusa in C# 11 o versione precedente. |
10.0 |
Il compilatore accetta solo la sintassi inclusa in C# 10 o versione precedente. |
9.0 |
Il compilatore accetta solo la sintassi inclusa in C# 9 o versione precedente. |
8.0 |
Il compilatore accetta solo la sintassi inclusa in C# 8.0 o versione precedente. |
7.3 |
Il compilatore accetta solo la sintassi inclusa in C# 7.3 o versione precedente. |
7.2 |
Il compilatore accetta solo la sintassi inclusa in C# 7.2 o versione precedente. |
7.1 |
Il compilatore accetta solo la sintassi inclusa in C# 7.1 o versione precedente. |
7 |
Il compilatore accetta solo la sintassi inclusa in C# 7.0 o versione precedente. |
6 |
Il compilatore accetta solo la sintassi inclusa in C# 6.0 o versione precedente. |
5 |
Il compilatore accetta solo la sintassi inclusa in C# 5.0 o versione precedente. |
4 |
Il compilatore accetta solo la sintassi inclusa in C# 4.0 o versione precedente. |
3 |
Il compilatore accetta solo la sintassi inclusa in C# 3.0 o versione precedente. |
ISO-2o 2 |
Il compilatore accetta solo la sintassi inclusa nella specifica ISO/IEC 23270:2006 C# (2.0). |
ISO-1o 1 |
Il compilatore accetta solo la sintassi inclusa nella specifica ISO/IEC 23270:2003 C# (1.0/1.2). |
Nota
Specificare LangVersion con il valore default è diverso dall'omissione dell'opzione LangVersion. Specificando default viene utilizzata la versione più recente del linguaggio supportata dal compilatore, senza tenere conto del framework di destinazione. Ad esempio, un progetto destinato a .NET 6 usa C# 10 se LangVersion non è specificato, ma usa la versione del linguaggio supportata più recente del compilatore installato se LangVersion è impostato su default.