Partilhar via


Versão da linguagem C#

O compilador C# mais recente determina uma versão de idioma padrão com base na estrutura ou estruturas de destino do seu projeto. O Visual Studio não fornece uma interface do usuário para alterar o valor, mas você pode alterá-la editando o arquivo csproj . A escolha do padrão garante que você use a versão de idioma mais recente compatível com sua estrutura de destino. Você se beneficia do acesso aos recursos linguísticos mais recentes compatíveis com o objetivo do seu projeto. Esta escolha padrão também garante que não usa uma versão de linguagem que exija tipos ou comportamentos em tempo de execução indisponíveis no seu framework de destino. Escolher uma versão da linguagem mais recente do que a padrão pode causar erros difíceis de diagnosticar em tempo de compilação e execução.

A referência da linguagem C# documenta a versão mais recentemente lançada da linguagem C#. Contém também documentação inicial para funcionalidades em pré-visualizações públicas para o próximo lançamento linguístico.

A documentação identifica qualquer funcionalidade introduzida pela primeira vez nas últimas três versões da língua ou em pré-visualizações públicas atuais.

Sugestão

Para saber quando uma funcionalidade foi introduzida pela primeira vez em C#, consulte o artigo sobre o histórico de versões da linguagem C#.

O C# 14 é suportado apenas em .NET 10 e versões mais recentes. C# 13 é suportado apenas no .NET 9 e versões mais recentes. O C# 12 é suportado apenas no .NET 8 e versões mais recentes. Não há suporte para o uso de uma versão de linguagem C# mais recente do que a versão associada ao TFM de destino.

Para detalhes sobre quais as versões .NET suportadas pelas versões do Visual Studio, consulte a página de compatibilidade da plataforma Visual Studio .

Defaults

O compilador determina um padrão com base nestas regras:

Destino Versão Padrão da versão do idioma C#
.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
Núcleo do .NET 3.x C# 8,0
Núcleo do .NET 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 todos C# 7,3

Se o seu projeto visa uma preview estrutura que tem uma versão de idioma de visualização correspondente, a versão de idioma usada é a versão de idioma de visualização. Você usa os recursos mais recentes com essa visualização em qualquer ambiente, sem afetar os projetos destinados a uma versão lançada do .NET Core.

Referência da versão da linguagem C#

A tabela a seguir mostra todas as versões atuais do idioma C#. Os compiladores mais antigos podem não entender todos os valores. Se você instalar o SDK .NET mais recente, terá acesso a tudo o que está listado.

Value Significado
preview O compilador aceita toda a sintaxe de idioma válida da versão de visualização mais recente.
latest O compilador aceita sintaxe da última versão lançada do compilador (incluindo a versão secundária).
latestMajor
ou default
O compilador aceita a sintaxe da última versão principal do compilador.
14.0 O compilador aceita apenas a sintaxe incluída no C# 14 ou inferior.
13.0 O compilador aceita apenas a sintaxe incluída no C# 13 ou inferior.
12.0 O compilador aceita apenas a sintaxe incluída no C# 12 ou inferior.
11.0 O compilador aceita apenas a sintaxe incluída no C# 11 ou inferior.
10.0 O compilador aceita apenas a sintaxe incluída no C# 10 ou inferior.
9.0 O compilador aceita apenas a sintaxe incluída no C# 9 ou inferior.
8.0 O compilador aceita apenas a sintaxe incluída no C# 8.0 ou inferior.
7.3 O compilador aceita apenas a sintaxe incluída no C# 7.3 ou inferior.
7.2 O compilador aceita apenas a sintaxe incluída no C# 7.2 ou inferior.
7.1 O compilador aceita apenas a sintaxe incluída no C# 7.1 ou inferior.
7 O compilador aceita apenas a sintaxe incluída no C# 7.0 ou inferior.
6 O compilador aceita apenas a sintaxe incluída no C# 6.0 ou inferior.
5 O compilador aceita apenas a sintaxe incluída no C# 5.0 ou inferior.
4 O compilador aceita apenas a sintaxe incluída no C# 4.0 ou inferior.
3 O compilador aceita apenas a sintaxe incluída no C# 3.0 ou inferior.
ISO-2
ou 2
O compilador aceita apenas a sintaxe incluída na ISO/IEC 23270:2006 C# (2.0).
ISO-1
ou 1
O compilador aceita apenas a sintaxe incluída na ISO/IEC 23270:2003 C# (1.0/1.2).

Nota

Especificar LangVersion com o valor é diferente de omitir a default. A especificação default usa a versão mais recente da linguagem suportada pelo compilador, sem levar em conta a estrutura de destino. Por exemplo, a criação de um projeto destinado ao .NET 6 a partir da versão atual do Visual Studio 2022 usa C# 10 se LangVersion não for especificado, mas usa C# 12 se LangVersion estiver definido como default.