Обычно сокращают 4.0 до 4 .
Это ответ на комментарий Адриана Григореса ".NET версия делаетопределить синтаксис и семантику языка C # ".
Существует (как минимум) три частично независимых номера версий - версия .NET Framework, версия Common Language Runtime (CLR) и C #версия (см. этот StackOverflow вопрос с полным списком версий Framework и CLR).
Версия C # определяет доступные языковые функции.Языковые функции основаны на возможностях .NET Framework - включенных сборочных платформах и версии CLR.Наконец, каждая версия .NET Framework включает определенную версию CLR, которая в основном определяет, что является действительным кодом Common Intermediate Language (CIL) и как его следует интерпретировать.Некоторые примеры.
C # 3.0 вводит автоматические свойства .Эта функция встроена в компилятор и не зависит от новых функций в сборках .NET Framework или даже от общеязыковой среды выполнения (.NET Framework 3.0 по-прежнему содержит CLR 2.0).Поэтому возможно создать приложение, используя автоматические свойства и нацеливаясь на .NET Framework 2.0 (возможно, даже на 1.0 и 1.1).
C # 3.0 представляет LINQ .Эта функция в основном встроена в компилятор, но частично опирается на сборки, новые в .NET Framework 3.0.LINQ to Objects, например, использует новый файл System.Core.dll, содержащий класс Enumerable
. Однако возможно подделать эти зависимости и, следовательно, использовать LINQ to Objects с .NET Framework 2.0.
C # 2.0 представляет generics .Эта функция опирается на расширение CIL в CLR 2.0.Поэтому невозможно использовать дженерики с .NET Framework 1.0 и 1.1.