Partilhar via


Configurar a versão da linguagem C#

Aviso

Definir o LangVersion elemento como latest é desencorajado. A latest configuração significa que o compilador instalado usa sua versão mais recente. Isso 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:

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 você está usando no momento, coloque #error version (diferencia maiúsculas de minúsculas) em seu código. Isso faz com que o compilador relate um erro do compilador, CS8304, com uma mensagem contendo a versão do compilador que está sendo usada e a versão atual do idioma selecionado. Consulte #error (Referência C#) para obter mais informações.

Por que você não pode selecionar uma versão diferente do C# no Visual Studio

No Visual Studio, a opção para alterar a versão de idioma por meio da interface do usuário pode ser 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.

Por exemplo, alterar o destino TFM (por exemplo, de .NET 6 para .NET 9) atualizará 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 você precisar de uma versão de idioma específico que difere da selecionada automaticamente, consulte os métodos abaixo para substituir as configurações padrão diretamente no arquivo de projeto.

Editar o arquivo de projeto

Pode definir a versão linguística no ficheiro de projeto. Por exemplo, se você quiser explicitamente acessar os recursos de visualização, adicione um elemento como este:

<PropertyGroup>
   <LangVersion>preview</LangVersion>
</PropertyGroup>

O valor preview usa a versão de linguagem C# de visualização mais recente disponível que seu compilador suporta.

Configurar vários projetos

Para configurar vários projetos, você pode criar um arquivo Directory.Build.props, normalmente no diretório da solução, que contém 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.

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.
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).