Есть ли предопределенная константа для различения языковых версий, например:
#if C#6
//code
#else
//code
#endif
Ты не должен был делать это.
Обычно вы делаете что-то подобное для поддержки разных версий среды выполнения .NET. Не разные версии компилятора С#. Более новый компилятор может предназначаться для более старых версий среды выполнения. Короче говоря, используйте последние возможности компилятора С#. Компилятор бесплатный, поэтому нет никаких реальных препятствий для обновления проекта, чтобы использовать новейшие функции.