![]() |
Hoje veremos como é feito o controle de versão da linguagem C#. |
Isso acontece porque a linguagem C# pode ter recursos que dependem de tipos ou componentes em tempo de execução que não estão disponíveis em todas as implementações do framework .NET.
Dessa forma, independentemente do destino para o qual o seu projeto for criado, você vai obter a versão da linguagem mais compatível.
Estas regras se aplicam ao compilador fornecido ao Visual Studio 2019 ou o SDK do .NET Core 3.0.
Os compiladores C# que fazem parte do Visual Studio 2017 ou de versões anteriores do SDK do .NET Core são direcionados para a versão 7.0 da linguagem C# por padrão.
Assim, o compilador determina um padrão com base nestas regras:
Framwork de destino | versão | Padrão da versão da linguagem C# |
---|---|---|
.NET Core | Win | 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 | todas | C# 7.3 |
E qual regra vale para as versões em preview ?
Quando o
seu projeto se destina a um framework com uma versão em preview que
tem uma versão da linguagem correspondente, a versão de linguagem usada é a
preview.
Com isso, é possível usar os recursos mais recentes que são garantidos para
trabalhar com essa versão prévia em qualquer ambiente sem afetar seus
projetos que direcionam uma versão lançada do .NET Core
E como podemos substituir uma versão padrão ?
Se você precisar especificar uma versão da linguagem C# temos as seguintes opções para fazer isso:
1- Editar manualmente o arquivo de projeto
Podemos definir a versão da linguagem no arquivo de projeto. Por exemplo , se você quiser acessar os recursos de versões em preview basta alterar o arquivo de projeto conforme abaixo:
Aqui o valor preview vai usar a versão em preview mais recente da linguagem C# compatível com seu compilador.
2- Definir a versão da linguagem para vários projetos em um diretório
Aqui podemos criar um arquivo Directory.Build.props que contém o elemento <LangVersion> para configurar vários diretórios.
Normalmente, fazemos isso no diretório da solução. A seguir adicionamos o código abaixo a um arquivo Directory.Build.props no diretório de solução:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
|
Agora, os builds de todo subdiretório do diretório que contém esse arquivo usarão a versão preview do C#.
3- Configurar a opção -langversion do compilador
A opção -langversion:option faz com que o compilador aceite somente a sintaxe incluída na especificação de linguagem C# escolhida.
Independentemente de qual configuração -langversion for usada, você usará a versão atual do Common Language Runtime para criar seu .exe ou .dll.
Referência a versão da linguagem C#
A tabela a seguir mostra todas as versões atuais da linguagem C#. Se instalar o .NET Core 3.0, você terá acesso a tudo que está listado.
Valor | Significado |
---|---|
preview | O compilador aceita todas as sintaxes de linguagem válidas da versão preview mais recente. |
Ultima versão | O compilador aceita a sintaxe da versão lançada mais recente do compilador |
latestMajor | O compilador aceita a sintaxe da versão principal mais recente lançada do compilador. |
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. |
E estamos conversados...
"E Jesus lhe
disse: Ninguém, que lança mão do arado e olha para trás, é apto para o reino
de Deus."
Lucas 9:62
Referências:
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
C# - Usando Listas com elegância - Macoratti
C# - Trabalhando com Coleções Genéricas do tipo List(<T>)
C# - Diferentes maneira de criar uma lista de objetos - Macoratti
C# - Acessando dados de um dicionário ordenado - Macoratti
C# - Usando um Dicionário para armazenar e ... - Macoratti
C# - Escolhendo a coleção correta para sua ... - Macoratti