Isso pode ocorrer porque o compilador usa, por padrão, versões diferentes da linguagem C # para diferentes Frameworks de Destino.
Para substituir o idioma C # padrão, adicione ao arquivo do projeto (conforme sugerido na pergunta):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
ou:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Consulte Versão do idioma C # para obter as versões padrão do idioma C # para as diferentes estruturas de destino e como selecionar manualmente a versão do idioma C #.
Consulte também a resposta de estouro de pilha O C # 8 suporta o .NET Framework? para mais informações sobre este tópico.
Aqui está parte do artigo de versão do idioma C # :
Controle de versão em linguagem C #
O compilador C # mais recente determina uma versão do idioma padrão com base na (s) estrutura (s) de destino do seu projeto. Isso ocorre porque a linguagem C # pode ter recursos que dependem de tipos ou componentes de tempo de execução que não estão disponíveis em todas as implementações do .NET. Isso também garante que, para qualquer destino em que seu projeto seja construído, você obtenha a versão mais alta do idioma compatível por padrão.
As regras deste artigo se aplicam ao compilador entregue com o Visual Studio 2019 ou o SDK do .NET Core 3.0. Os compiladores C # que fazem parte da instalação do Visual Studio 2017 ou das versões anteriores do .NET Core SDK têm como destino o C # 7.0 por padrão.
Predefinições
O compilador determina um padrão com base nestas regras:
--------------------------------------------------------
Target framework | version | C# language version default
--------------------------------------------------------
.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
--------------------------------------------------------
Substituir um padrão
Se você precisar especificar explicitamente sua versão do C #, poderá fazê-lo de várias maneiras:
- Edite manualmente seu arquivo de projeto.
- Defina a versão do idioma para vários projetos em um subdiretório.
- Configure a opção do compilador -langversion.
Edite o arquivo do projeto
Você pode definir a versão do idioma no seu arquivo de projeto. Por exemplo, se você desejar explicitamente acessar recursos de visualização, adicione um elemento como este:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
O valor preview
usa a versão mais recente da linguagem C # de visualização disponível, suportada pelo compilador.
Configurar vários projetos
Para configurar vários projetos, você pode criar um arquivo Directory.Build.props que contém o <LangVersion>
elemento Você normalmente 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>
Agora, as compilações em todos os subdiretórios do diretório que contêm esse arquivo usarão a versão C # de visualização. Para obter mais informações, consulte o artigo Personalizar sua compilação .