Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A informação deste artigo aplica-se ao .NET 5 e versões posteriores. Para projetos UWP, consulte o artigo sobre Escolher uma versão UWP.
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.
Gorjeta
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#.
No Visual Studio, a opção de alterar a versão da linguagem através da interface está desativada porque a versão por defeito está alinhada com a framework de destino do projeto (TFM). Essa configuração padrão garante a compatibilidade entre os recursos de linguagem e o suporte de tempo de execução. Para alterar a versão de idioma no Visual Studio, altere a estrutura de destino do projeto.
Por exemplo, alterar o TFM de destino (por exemplo, de .NET 6 para .NET 9) atualiza a versão do idioma de acordo, de C# 10 para C# 13. Essa abordagem evita problemas com a compatibilidade de tempo de execução e minimiza erros de compilação inesperados devido a recursos de linguagem sem suporte.
Se precisar de uma versão específica da língua que difere da selecionada automaticamente, use os métodos deste artigo para sobrepor as definições padrão diretamente no ficheiro do projeto.
Aviso
Não definas o LangVersion elemento para latest. A latest configuração significa que o compilador instalado usa sua versão mais recente. O valor do latest pode mudar de máquina para máquina, tornando as construções não confiáveis. Além disso, ele habilita recursos de linguagem que podem exigir recursos de tempo de execução ou biblioteca não incluídos no SDK atual.
Se você precisar especificar sua versão do C# explicitamente, poderá fazê-lo de várias maneiras:
- Edite manualmente o ficheiro de projeto.
- Defina a versão do idioma para vários projetos em um subdiretório.
- Configure a opção LangVersion do compilador.
Gorjeta
Você pode ver a versão do idioma no Visual Studio na página de propriedades do projeto. Na guia Compilar, o painel Avançado exibe a versão selecionada.
Para saber qual versão de idioma estás a usar atualmente, coloca #error version (sensível a maiúsculas e minúsculas) no teu código. Este pragma faz com que o compilador relate um erro do compilador, CS8304, com uma mensagem contendo a versão do compilador e a versão atual do idioma selecionado. Para obter mais informações sobre esse pragma, consulte #error (Referência C#).
Editar o arquivo de projeto
Define a versão da língua no ficheiro do teu projeto. O arquivo de projeto é o *.csproj arquivo na pasta raiz do seu projeto. Por exemplo, se quiser acesso explícito a funcionalidades de pré-visualização, adicione um elemento como o seguinte exemplo:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
O valor preview usa a versão de linguagem C# de visualização mais recente disponível suportada pelo compilador.
Configurar vários projetos
Para configurar vários projetos C#, crie um ficheiro Directory.Build.props , normalmente no diretório da sua solução, que contenha o <LangVersion> elemento. Adicione a seguinte configuração ao arquivo Directory.Build.props :
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
As compilações em todos os subdiretórios do diretório que contém esse arquivo agora usam a versão C# de visualização. Para obter mais informações, consulte Personalizar sua compilação.
Observação
As versões para C# e Visual Basic são diferentes. Não use o arquivo de Directory.Build.Props para uma pasta onde os subdiretórios contêm projetos para ambos os idiomas. As versões não correspondem.
Referência da versão da linguagem C#
Importante
Usar uma versão em C# mais recente do que a versão associada ao teu TFM alvo não é suportado.
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.
| Valor | 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 versão mais recente lançada do compilador (incluindo a versão secundária). |
latestMajorou 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-2ou 2 |
O compilador aceita apenas a sintaxe incluída na ISO/IEC 23270:2006 C# (2.0). |
ISO-1ou 1 |
O compilador aceita apenas a sintaxe incluída na ISO/IEC 23270:2003 C# (1.0/1.2). |