Esto puede deberse a que el compilador utiliza por defecto diferentes versiones de lenguaje C # para diferentes marcos de destino.
Para anular el lenguaje C # predeterminado, agregue al archivo del proyecto (como se sugiere en la pregunta):
<PropertyGroup>
<LangVersion>8.0</LangVersion>
</PropertyGroup>
o:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Consulte las versiones en lenguaje C # para conocer las versiones predeterminadas en lenguaje C # para los diferentes marcos de destino y cómo seleccionar manualmente la versión en lenguaje C #.
Consulte también la respuesta de desbordamiento de pila ¿C # 8 admite .NET Framework? para más información sobre este tema
Aquí está parte del artículo de versiones de lenguaje C # :
Versiones de lenguaje C #
El último compilador de C # determina una versión de idioma predeterminada basada en el marco o marcos de destino de su proyecto. Esto se debe a que el lenguaje C # puede tener características que dependen de tipos o componentes de tiempo de ejecución que no están disponibles en todas las implementaciones de .NET. Esto también garantiza que, independientemente del objetivo para el que se construya su proyecto, obtenga la versión de idioma compatible más alta de forma predeterminada.
Las reglas de este artículo se aplican al compilador entregado con Visual Studio 2019 o .NET Core 3.0 SDK. Los compiladores de C # que forman parte de la instalación de Visual Studio 2017 o versiones anteriores de .NET Core SDK se dirigen a C # 7.0 de manera predeterminada.
Valores predeterminados
El compilador determina un valor predeterminado basado en estas reglas:
--------------------------------------------------------
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
--------------------------------------------------------
Anular un valor predeterminado
Si debe especificar su versión de C # explícitamente, puede hacerlo de varias maneras:
- Edite manualmente su archivo de proyecto.
- Establezca la versión de idioma para varios proyectos en un subdirectorio.
- Configure la opción del compilador -langversion.
Edite el archivo del proyecto
Puede configurar la versión del idioma en su archivo de proyecto. Por ejemplo, si desea acceder explícitamente a las funciones de vista previa, agregue un elemento como este:
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
El valor preview
utiliza la última versión preliminar disponible del lenguaje C # que admite su compilador.
Configurar múltiples proyectos
Para configurar varios proyectos, puede crear un archivo Directory.Build.props que contenga el <LangVersion>
elemento. Normalmente lo haces en tu directorio de soluciones. Agregue lo siguiente a un archivo Directory.Build.props en su directorio de soluciones:
<Project>
<PropertyGroup>
<LangVersion>preview</LangVersion>
</PropertyGroup>
</Project>
Ahora, las compilaciones en cada subdirectorio del directorio que contiene ese archivo utilizarán la versión preliminar de C #. Para obtener más información, consulte el artículo sobre Personalizar su compilación .