C# version history could be found here.
C# version depends on the compiler version which is shipped with .NET SDK (generally known installed with Visual Studio Installer).
You could still target an .NET implementation (which means .NET Core, Mono, or the obsoleted .NET Framework) of lower version with a project that builds with SDKs of a later version, but some language features are not supported, which are implemented with some built-in types that are not provided by the target .NET implementation. For example, you cannot use the tuple syntax targeting .NET Framework 4.5, even if you build it with the latest .NET SDK, because .NET Framework 4.5 does not have ValueType
definitions. But some could be fixed with nuget packages that supplement them such as System.ValueTuple
.
C# 8.0 has already been released with .NET Core 3.0.