Каковы правильные номера версий для С#?

Каковы правильные номера версий для С#? Что вышло, когда? Почему я не могу найти ответы на вопрос о С# 3.5?

Этот вопрос прежде всего помогает тем, кто ищет ответ, используя неправильный номер версии, например. "С# 3.5". Надеемся, что любой, кто не найдет ответ с неправильным номером версии, найдет этот вопрос, а затем снова запросит правильный номер версии.

1819
задан Jon Skeet 29 окт. '08 в 20:09
источник поделиться
9 ответов

Это версии С#, которые были известны на момент написания этой статьи:

  • С# 1.0, выпущенный с .NET 1.0 и VS2002 (январь 2002 г.)
  • С# 1.2 (как ни странно); выпущен с .NET 1.1 и VS2003 (апрель 2003 г.). Первая версия для вызова Dispose на IEnumerator, которая реализовала IDisposable. Несколько других мелких функций.
  • С# 2.0, выпущенный с .NET 2.0 и VS2005 (ноябрь 2005 г.). Основные новые функции: дженерики, анонимные методы, типы с нулевым значением, блоки итераторов
  • С# 3.0, выпущенный с помощью .NET 3.5 и VS2008 (ноябрь 2007 г.). Основные новые функции: лямбда-выражения, методы расширения, деревья выражений, анонимные типы, неявное типирование (var), выражения запросов
  • С# 4.0, выпущенный с .NET 4 и VS2010 (апрель 2010 г.). Основные новые функции: поздняя привязка (dynamic), общая дисперсия делегата и интерфейса, дополнительная поддержка COM, именованные аргументы, тип данных кортежа и необязательные параметры.
  • С# 5.0, выпущенный с .NET 4.5 и VS2012 (август 2012 г.). Основные функции: асинхронное программирование, атрибуты информации о вызывающем абоненте. Нарушение изменения: закрытие переменных цикла.
  • С# 6.0, выпущенный с .NET 4.6 и VS2015 (июль 2015 г.). Реализовано Roslyn. Особенности: инициализаторы для автоматически реализованных свойств, использование директив для импорта статических элементов, фильтры исключений, индексированные элементы и инициализаторы элементов, await в catch и finally, расширения Add в инициализаторах коллекции.
  • С# 7.0, выпущенный с помощью .NET 4.7 и VS2017 (март 2017). Основные новые функции: кортежи, ref locals и ref return, сопоставление шаблонов (включая инструкции на основе шаблонов), inline out объявления параметров, локальные функции, бинарные литералы, разделители цифр и произвольные возвраты async.
  • С# 7.1, выпущенный с .NET 4.7 и VS2017 v15.3 (август 2017). Незначительные новые функции: async main, вывод имени члена tuple, выражение по умолчанию, сопоставление с дженериками.

Нет такой вещи, как С# 3.5 - причина путаницы здесь в том, что С# 3.0 присутствует в .NET 3.5. Однако язык и инфраструктура версируются независимо друг от друга - как и CLR, который находится в версии 2.0 для .NET с 2.0 по 3.5,.NET 4, предлагая CLR 4.0, несмотря на пакет обновлений. CLR в .NET 4.5 имеет различные улучшения, но управление версиями неясно: в некоторых местах его можно назвать CLR 4.5 (эта страница MSDN используется, например, для этого), но свойство Environment.Version по-прежнему сообщает 4.0.xxx.

Более подробная информация о взаимоотношениях между языком, версиями и версиями фреймворка доступна на С# in Depth. Сюда входит информация о том, какие функции С# 3.0 вы можете использовать при настройке .NET 2.0. (Если кто-то хочет довести весь контент в этом вики-ответе, они будут рады.)

По состоянию на 3 мая 2017 года команда языка С# создала историю версий и функций С# в своем реестре github: Возможности, добавленные в версии языка С#

2095
ответ дан Jon Skeet 29 окт. '08 в 20:10
источник поделиться

Самая большая проблема при работе с номерами версий С# заключается в том, что она не привязана к версии .NET Framework, которая, по-видимому, связана с синхронизированными релизами между Visual Studio и .NET Framework.

Версия С# фактически связана с компилятором, а не с каркасом. Например, в Visual Studio 2008 вы можете писать С# 3.0 и целевые .NET Framework 2.0, 3.0 и 3.5. Номенклатура С# 3.0 описывает версию синтаксиса кода и поддерживаемые функции таким же образом, что ANSI C89, C90, C99 описывает синтаксис кода/функции для C.

Посмотрите Mono, и вы увидите, что Mono 2.0 (в основном реализована версия 2.0.NET Framework из ECMA) поддерживает синтаксис и функции С# 3.0.

212
ответ дан Bryan Rehbein 25 нояб. '08 в 19:10
источник поделиться
  • С# 1.0 с Visual Studio.NET

  • С# 2.0 с Visual Studio 2005

  • С# 3.0 с Visual Studio 2008

  • С# 4.0 с Visual Studio 2010

  • С# 5.0 с Visual Studio 2012

  • С# 6.0 с Visual Studio 2015

  • С# 7.0 с Visual Studio 2017

147
ответ дан iTSrAVIE 31 дек. '11 в 16:15
источник поделиться

Это то же самое, что и большинство ответов здесь, но в табличном виде для удобства, и для полноты он имеет версии Visual Studio и .NET.

╔════════════╦════════════╦══════════════╦═════════════╦══════════════╗
║ C# version ║ VS version ║ .NET version ║ CLR version ║ Release date ║
╠════════════╬════════════╬══════════════╬═════════════╬══════════════╣
║    1.0     ║    2002    ║    1.0       ║     1.0     ║   Feb 2002   ║
║    1.2     ║    2003    ║    1.1       ║     1.1     ║   Apr 2003   ║
║    2.0     ║    2005    ║    2.0       ║     2.0     ║   Nov 2005   ║
║            ║            ║    3.0       ║     2.0     ║   Nov 2006   ║
║    3.0     ║    2008    ║    3.5       ║     2.0     ║   Nov 2007   ║
║    4.0     ║    2010    ║    4.0       ║     4       ║   Apr 2010   ║
║    5.0     ║    2012    ║    4.5       ║     4       ║   Aug 2012   ║
║    5.0     ║    2013    ║    4.5.1     ║     4       ║   Oct 2013   ║
║            ║            ║    4.5.2     ║     4       ║   May 2014   ║
║    6.0     ║    2015    ║    4.6       ║     4       ║   Jul 2015   ║
║            ║            ║    4.6.1     ║     4       ║   Nov 2015   ║
║            ║            ║    4.6.2     ║     4       ║   Aug 2016   ║
║    7.0     ║    2017    ║              ║             ║   Mar 2017   ║
║            ║            ║    4.7       ║     4       ║   May 2017   ║
║    7.1     ║ 2017(v15.3)║              ║             ║   Aug 2017   ║
║            ║            ║    4.7.1     ║     4       ║              ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝
115
ответ дан nawfal 21 июля '16 в 17:14
источник поделиться

VERSION _____ СПЕЦИФИКАЦИЯ ЯЗЫКА ______ MICROSOFT COMPILLER

С# 1.0/1.2 ____ Декабрь 2001 ?/2003 ?___________ Январь 2002 ?

С# 2.0 _______ Сентябрь 2005 г. ________________ Ноябрь 2005 ?

С# 3.0 _______ май 2006 г. _____________________ ноябрь 2006 ?

С# 4.0 _______ Март 2009 (проект) ______________ Апрель 2010 ?

С# 5.0; выпущен в .NET 4.5 в августе 2012 года.

С# 6.0; выпущен в .NET 4.6 2015

С# 7.0; выпущен с .NET 4.7 2017

61
ответ дан Pramodh 07 мая '10 в 14:08
источник поделиться

Вы можете проверить последние версии С# здесь C# Versions

34
ответ дан Israel Ocbina 15 окт. '14 в 0:25
источник поделиться

История версий С#:

С# - простой и мощный объектно-ориентированный язык программирования, разработанный Microsoft.

С# значительно изменился с момента его первого выпуска в 2002 году. С# был представлен с .NET Framework 1.0.

В следующей таблице перечислены важные функции, представленные в каждой версии С#.

Введите описание изображения здесь

И последняя версия С# доступна в Версии С#.

30
ответ дан Milan 26 янв. '16 в 15:33
источник поделиться

Сравнение статей MSDN "Что нового в языке С# 2.0 и компиляторе" и " Что нового в Visual С# 2005", можно вывести, что "С# major_version.minor_version" придумано в соответствии с нумерацией версий компилятора.

Существует С# 1.2, соответствующий .NET 1.1 и VS 2003, а также названный Visual С#.NET 2003.

Но дальше Microsoft перестала увеличивать номера младшей версии (после точки) или иметь их отличные от нуля, 0. Хотя следует отметить, что С#, соответствующий .NET 3.5, назван в msdn.microsoft.com как "Visual С# 2008 с пакетом обновления 1" .

Существует два параллельных ввода: по основной нумерации версий .NET/компилятора и нумерации Visual Studio.

С# 2.0 является синонимом Visual С# 2005

С# 3.0 соответствует (или, вернее, цели):

23
ответ дан Gennady Vanin Геннадий Ванин 21 мая '13 в 5:54
источник поделиться

Я обобщил большинство версий этой таблицы. Единственными недостающими должны быть версии ASP.NET Core. Я также добавил разные версии ASP.NET MVC.

Обратите внимание, что ASP.NET 5 был переименован как ASP.NET Core 1.0, а ASP.NET MVC 6 был переименован как ASP.NET Core MVC 1.0.0. Я считаю, что это изменение произошло примерно в январе 2016 года.

Я включил дату выпуска ASP.NET 5 RC1 в таблицу, но я еще не включил ASP.NET core 1.0 и другие основные версии, потому что я не мог найти точные даты выпуска. Подробнее о датах выпуска в отношении ASP.NET Core можно узнать здесь: Когда выйдет ASP.NET Core 1.0 (ASP.NET 5/vNext)?

Версия

22
ответ дан Mindless 04 янв. '17 в 8:38
источник поделиться

Другие вопросы по меткам