Csharp8 e Csharp9
Resumo do treinamento para o exame…………….
A primeira etapa é garantir que estejamos usando o Visual Studio 2019 versão 16.3 ou superior. Verifique no menu Ajuda > Informações sobre o Visual Studio.
Em seguida, precisamos configurar o projeto para o C# 8. Se estivermos acostumados a trabalhar com o Visual Studio, talvez espere alterar de maneira simples a configuração de um projeto. Antes era só ir para Compilar da janela de propriedades do projeto e selecionar a versão do idioma C# :
Infelizmente, isso não funciona mais. Sob as novas regras, a versão padrão do C# é determinada por qual framework estamos direcionando. Os compiladores do C# que fazem parte da instalação do Visual Studio 2017 ou de versões anteriores do SDK do .NET Core são direcionados ao C# 7.0 por padrão. O C# 8,0 tem suporte apenas no .NET Core 3. x e em versões mais recentes. Muitos dos recursos mais recentes exigem recursos de biblioteca e tempo de execução introduzidos no .NET Core 3. x:
O C# 9,0 tem suporte apenas no .NET 5 e em versões mais recentes.
O compilador determina um padrão com base nestas regras:
Estrutura de destino | version | Padrão da versão da linguagem C# |
---|---|---|
.NET | 5 | C# 9,0 |
.NET Core | 3.x | 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 | all | C# 7.3 |
Abra o prompt de comando do desenvolvedor para o Visual Studioe execute o comando a seguir para ver a lista de versões de idioma disponíveis em seu computador.
csc -langversion:?
Questionando a opção de compilação -langversion como essa, imprimirá algo semelhante ao seguinte:
A tabela a seguir mostra todas as versões atuais da linguagem C#. Seu compilador pode não entender necessariamente todos os valores se for mais antigo. Se você instalar o .NET Core 3,0 ou posterior, terá acesso a todos os itens listados.
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 lançada mais recente do compilador (incluindo a versão secundária). |
latestMajor (default) | 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. |
ISO-2(ou 2) | O compilador aceita apenas a sintaxe que está incluída em ISO/IEC 23270:2006 C# (2,0). |
Para saber qual versão de idioma você está usando no momento, coloque #error em seu código. Isso faz com que o compilador produza um diagnóstico, CS8304, com uma mensagem que contém a versão do compilador que está sendo usada e a versão atual do idioma selecionado.
Somente o .NET Core 3.0 e o .NET Standard 2.1 possuem o C# 8, o restante começa com o C# 7.3. Crie um projeto console Core 3.0:
Se precisar especificar sua versão do C# explicitamente, poderá fazer isso de várias maneiras:
É possível definir a versão da linguagem em seu arquivo de projeto. Por exemplo, se você quiser explicitamente acesso às versões prévias dos recursos, adicione um elemento como este:
<PropertyGroup>
<LangVersion>preview</LangVersion> OU <LangVersion>8.0</LangVersion>
</PropertyGroup>
O valor preview usa a versão prévia mais recente da linguagem C# compatível com seu compilador. Se estivermos usando um formato de projeto moderno, podemos abri-lo clicando duas vezes no projeto no Solution Explorer. Podemos reconhecer esse formato porque a raiz do arquivo XML é parecida com esta:
<Project Sdk="Microsoft.NET.Sdk">
Se estivermos usando o formato do projeto legado, podemos editá-lo diretamente, mas será um pouco mais complicado. Uma opção é fechar o Visual Studio e usar o bloco de notas ou algum editor de texto. Como alternativa, podemos instalar o Power Commands do Visual Studio, que adiciona um comando “Edit Project File”. Para referência, a raiz do arquivo XML será mais ou menos assim:
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
Para configurar vários projetos, você pode criar um arquivo Directory. Build. props que contém o <LangVersion>
elemento. Normalmente, você faz isso no diretório da solução. Adicione o seguinte a um arquivo Directory. Build. props no diretório da solução:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
As compilações em todos os subdiretórios do diretório que contém esse arquivo usarão a versão preview C#. Para obter mais informações, confira o artigo sobre como personalizar o build. C# 8.0 adiciona os seguintes recursos e aprimoramentos à linguagem C#:
Configurar com C# 9 é basicamente o mesmo que configurar com .NET Preview 5.
Depois que o SDK do .NET 5 Preview estiver instalado e configurado. Para qualquer projeto existente que você deseja testar em execução no .NET 5 (por exemplo, um pequeno aplicativo de console), tudo o que você precisa fazer é brir o arquivo .csproj. Para abrir o arquivo de projeto * .csproj: Clique com o botão direito do mouse no Gerenciador de Soluções e escolha Editar Arquivo de Projeto.:
<Project Sdk = "Microsoft.NET.Sdk" >
<PropertyGroup>
<OutputType> Exe </OutputType>
<TargetFramework> netcoreapp3.1 </TargetFramework>
</PropertyGroup>
</Project>
Para :
<Project Sdk = "Microsoft.NET.Sdk" >
<PropertyGroup>
<OutputType> Exe </OutputType>
<TargetFramework> net5.0 </TargetFramework>
<LangVersion> 9.0 </LangVersion>
</PropertyGroup>
</Project>
Observe que alguns modelos, como aplicativos de console, não solicitam a versão do SDK ao criar um novo projeto, eles apenas usam o SDK mais recente disponível. Nesse caso, seu “padrão” para Visual Studio repentinamente se torna uma prévia do SDK do .NET Core.
Se você fez tudo isso e obteve um destes erros:
Então aqui está sua lista de solução de problemas rápida e fácil:
Releases | Visual Studio 2019 Preview |
---|---|
September 14, 2020 | version 16.8 Preview 3.1New release icon |
August 31, 2020 | Visual Studio 2019 version 16.8 Preview 2.1 |
August 25, 2020 | Visual Studio 2019 version 16.8 Preview 2 |
August 5, 2020 | Visual Studio 2019 version 16.8 Preview 1 |
Uma nova versão de amostra do .NET 5/C# 9 é lançada a cada poucos meses. Portanto, se você estiver lendo sobre um novo recurso C# 9 ou .NET 5 que alguém está usando, mas parece que não consegue fazê-lo funcionar, volte sempre para https://dotnet.microsoft.com/download/dotnet/5.0 e baixe a última versão de visualização e instale. Semelhante ao Visual Studio, embora normalmente não seja um problema, tente mantê-lo atualizado, já que muitas vezes os recursos mais recentes que não funcionam são simplesmente porque estou em uma versão que estava perfeitamente bem um mês atrás, mas agora está desatualizada.