Cela peut être dû au fait que le compilateur utilise par défaut différentes versions du langage C # pour différents cadres cibles.
Pour remplacer le langage C # par défaut, ajoutez au fichier de projet (comme suggéré dans la question):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
ou:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Voir Versionnage du langage C # pour les versions du langage C # par défaut pour les différents frameworks cibles et comment sélectionner manuellement la version du langage C #.
Voir aussi la réponse de débordement de pile. C # 8 prend-il en charge le .NET Framework? pour plus d'informations sur ce sujet.
Voici une partie de l' article de versioning en langage C # :
Versionnage du langage C #
Le dernier compilateur C # détermine une version de langage par défaut en fonction du cadre ou des cadres cibles de votre projet. Cela est dû au fait que le langage C # peut avoir des fonctionnalités qui dépendent de types ou de composants d'exécution qui ne sont pas disponibles dans chaque implémentation .NET. Cela garantit également que, quelle que soit la cible de votre projet, vous obtenez la version linguistique compatible la plus élevée par défaut.
Les règles de cet article s'appliquent au compilateur fourni avec Visual Studio 2019 ou le SDK .NET Core 3.0. Les compilateurs C # qui font partie de l'installation de Visual Studio 2017 ou des versions antérieures du SDK .NET Core ciblent C # 7.0 par défaut.
Valeurs par défaut
Le compilateur détermine une valeur par défaut en fonction de ces règles:
--------------------------------------------------------
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
--------------------------------------------------------
Remplacer une valeur par défaut
Si vous devez spécifier explicitement votre version C #, vous pouvez le faire de plusieurs manières:
- Modifiez manuellement votre fichier de projet.
- Définissez la version linguistique de plusieurs projets dans un sous-répertoire.
- Configurez l'option du compilateur -langversion.
Modifier le fichier de projet
Vous pouvez définir la version linguistique dans votre fichier de projet. Par exemple, si vous souhaitez explicitement accéder aux fonctionnalités d'aperçu, ajoutez un élément comme celui-ci:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
La valeur preview
utilise la dernière version disponible en langage C # d'aperçu prise en charge par votre compilateur.
Configurer plusieurs projets
Pour configurer plusieurs projets, vous pouvez créer un fichier Directory.Build.props qui contient l' <LangVersion>
élément. Vous le faites généralement dans votre répertoire de solutions. Ajoutez ce qui suit à un fichier Directory.Build.props dans le répertoire de votre solution:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Désormais, les builds dans chaque sous-répertoire du répertoire contenant ce fichier utiliseront la version C # de prévisualisation. Pour plus d'informations, consultez l'article sur Personnaliser votre build .