De acuerdo con esta entrada de blog, el lenguaje está realmente vinculado al marco:
Esto significa que los tipos necesarios para usar estas funciones no estarán disponibles en .NET Framework 4.8. Del mismo modo, las implementaciones de miembros de interfaz predeterminados se basan en nuevas mejoras de tiempo de ejecución, y tampoco las haremos en .NET Runtime 4.8.
Por este motivo, el uso de C# 8.0 solo se admite en plataformas que implementan .NET Standard 2.1. La necesidad de mantener estable el tiempo de ejecución nos ha impedido implementar nuevas funciones de lenguaje durante más de una década. Con la naturaleza de lado a lado y de código abierto de los tiempos de ejecución modernos, sentimos que podemos evolucionarlos de nuevo de manera responsable y diseñar el lenguaje con eso en mente. Scott explicó en su Actualización sobre .NET Core 3.0 y .NET Framework 4.8 que .NET Framework verá menos innovación en el futuro, en lugar de centrarse en la estabilidad y la confiabilidad. Dado eso, creemos que es mejor que se pierda algunas características del lenguaje que que nadie las obtenga.
C# 8.0 (y superior) solo es compatible con .NET Core 3.x y versiones más recientes. Muchas de las funciones más nuevas requieren funciones de biblioteca y tiempo de ejecución introducidas en .NET Core 3.x: control de versiones del lenguaje C#