Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As informações neste artigo se aplicam ao .NET 5 e posteriores. Para projetos UWP, consulte essas informações no artigo sobre Escolhendo uma versão UWP.
No Visual Studio, a opção de alterar a versão do idioma por meio da interface do usuário está desabilitada porque a versão padrão está alinhada com a estrutura 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 do 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 adequadamente, de C# 10 para C# 13. Essa abordagem evita problemas com a compatibilidade de runtime e minimiza erros de build inesperados devido a recursos de linguagem sem suporte.
Se você precisar de uma versão de idioma específica que difere da selecionada automaticamente, consulte os métodos neste artigo para substituir as configurações padrão diretamente no arquivo de projeto.
Aviso
Não é recomendável definir o elemento LangVersion
como latest
. A configuração latest
significa que o compilador instalado usa sua versão mais recente. O valor de latest
pode ser alterado de computador para computador, tornando os builds não confiáveis. Além disso, ele habilita recursos de linguagem que podem exigir recursos de runtime ou biblioteca não incluídos no SDK atual.
Se precisar especificar sua versão do C# explicitamente, poderá fazer isso de várias maneiras:
- Edite manualmente o arquivo do projeto.
- Definir a versão da linguagem para vários projetos em um subdiretório.
- Configure a opção do compilador LangVersion.
Dica
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 do idioma você está usando, coloque #error version
(sensível a maiúsculas e minúsculas) em seu código. Esse pragma faz com que o compilador reporte um erro, 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 de C#).
Editar o arquivo de projeto
É possível definir a versão da linguagem em seu arquivo de projeto. Por exemplo, se você quiser explicitamente acesso aos recursos de 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 versão prévia mais recente compatível com o compilador.
Configurar vários projetos
Para configurar vários projetos em C#, você pode criar um arquivo directory.build.props, normalmente no diretório da solução, que contém o elemento <LangVersion>
. 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 prévia do C#. Para obter mais informações, confira Personalizar seu build.
Observação
As versões para C# e VB são diferentes. Não use o arquivo Directory.Build.Props para uma pasta em que os subdiretórios contêm projetos para ambos os idiomas. As versões não correspondem.
Referência à versão da linguagem C#
Importante
O uso de uma versão da linguagem C# mais recente que a versão associada ao TFM de destino não tem suporte.
A tabela a seguir mostra todas as versões atuais da linguagem C#. Os compiladores mais antigos podem não entender todos os valores. Se você instalar o SDK do .NET mais recente, terá acesso a tudo o que está listado.
Valor | Significado |
---|---|
preview |
O compilador aceita todas as sintaxes de linguagem válidas da versão prévia mais recente. |
latest |
O compilador aceita a sintaxe da versão mais recente lançada do compilador (incluindo a versão menor). |
latestMajor ou default |
O compilador aceita a sintaxe da versão principal mais recente lançada do compilador. |
14.0 |
O compilador aceita apenas a sintaxe incluída no C# 14 ou inferior. |
13.0 |
O compilador aceita somente a sintaxe incluída no C# 13 ou inferior. |
12.0 |
O compilador aceita somente a sintaxe incluída no C# 12 ou versão inferior. |
11.0 |
O compilador aceita somente a sintaxe incluída no C# 11 ou inferior. |
10.0 |
O compilador aceita somente a sintaxe incluída no C# 10 ou inferior. |
9.0 |
O compilador aceita somente a sintaxe incluída no C# 9 ou inferior. |
8.0 |
O compilador aceita somente a sintaxe incluída no C# 8.0 ou inferior. |
7.3 |
O compilador aceita somente a sintaxe incluída no C# 7.3 ou inferior. |
7.2 |
O compilador aceita somente a sintaxe incluída no C# 7.2 ou inferior. |
7.1 |
O compilador aceita somente a sintaxe incluída no C# 7.1 ou inferior. |
7 |
O compilador aceita somente a sintaxe incluída no C# 7.0 ou inferior. |
6 |
O compilador aceita somente a sintaxe incluída no C# 6.0 ou inferior. |
5 |
O compilador aceita somente a sintaxe incluída no C# 5.0 ou inferior. |
4 |
O compilador aceita somente a sintaxe incluída no C# 4.0 ou inferior. |
3 |
O compilador aceita somente a sintaxe incluída no C# 3.0 ou inferior. |
ISO-2 ou 2 |
O compilador aceita somente a sintaxe incluída no ISO/IEC 23270:2006 C# (2.0). |
ISO-1 ou 1 |
O compilador aceita somente a sintaxe incluída no ISO/IEC 23270:2003 C# (1.0/1.2). |