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

2382

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

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

  • 66
    Это один из хороших источников, чтобы понять все. en.wikipedia.org/wiki/C_Sharp_(programming_language)
  • 1
    Разве второй абзац не должен быть в комментарии, а не в вопросе, поскольку он не является частью вопроса?
Показать ещё 1 комментарий
Теги:
visual-studio
.net-framework-version

10 ответов

2757
Лучший ответ

История версий языка С#:

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

В ответ на вопрос ОП:

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

Нет такой вещи, как С# 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.

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

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

  • 10
    Для тех, кто предложил включить параллельные коллекции: это список языковых возможностей, а не фреймворка . Обратите внимание на отсутствие упоминания WPF и т. Д.
  • 0
    Интересные мелочи (и потенциально полезные): вы можете ориентироваться на разные версии фреймворка / языка, отличные от пар по умолчанию, перечисленных выше (например, если у вас есть компилятор C # 5.0+, например, что поставляется в VS2012 +, вы можете использовать атрибуты информации о вызывающем абоненте языка C # 5.0 при ориентации на .NET 4.0, например.)
Показать ещё 30 комментариев
263

Самая большая проблема при работе с номерами версий С# заключается в том, что она не привязана к версии.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.

257

Это то же самое, что и большинство ответов здесь, но для удобства составлено в виде таблицы, и для полноты изложения оно имеет версии 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       ║   Oct 2017   ║
║    7.2     ║ 2017(v15.5)║              ║             ║   Dec 2017   ║
║            ║            ║    4.7.2     ║     4       ║   Apr 2018   ║
║    7.3     ║ 2017(v15.7)║              ║             ║   May 2018   ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝

Примечание. В настоящее время разработка .NET практически не зависит от VS, корреляции между версиями нет. Обратитесь к разделу " .NET Framework версии и зависимости " для получения дополнительной информации.

  • 2
    А как насчет версий .NET Core?
  • 1
    @ Pac0 .NET Core разработка в значительной степени независима от разработки VS и ее трудно отследить (будучи открытым исходным кодом). На самом деле все VS, .NET и .NET Core работают довольно быстро.
172
  • С# 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

75

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

  • 7
    Откуда вы взяли спецификацию языка C # 2.0 в декабре 2002 года? Точно так же C # 4 в июне 2006 года? Вы уверены, что не говорите о выпусках ECMA, которые совершенно разные?
  • 4
    просто перейдите по следующей ссылке en.wikipedia.org/wiki/C_Sharp_(programming_language)
51

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

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

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

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

Изображение 940

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

46

Я обобщил большинство версий этой таблицы. Единственными недостающими должны быть версии 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)?

Изображение 941

  • 1
    Я не уверен, что наличие MVC в одной и той же таблице полезно, если честно ... это просто отдельный график выпуска, по сути.
  • 0
    @Jon Это правда, просто добавьте его здесь для всех, кому это может понадобиться, потому что я попытался выяснить соответствующие даты выпуска .NET Framework, чтобы лучше понять всю историю версий.
45

Вы можете проверить последние версии С# здесь Изображение 942

30

Сравнивая статьи 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 соответствует (или, вернее, может быть целью):

  • 3
    Нет, C #, соответствующий .NET 3.5, называется «Visual C # 2008», если вы действительно хотите использовать эту нумерацию. Функции C # 3.0 были представлены в «Visual C # 2008», поэтому на странице, на которую вы ссылаетесь, они находятся в разделе «Что нового в исходной версии Visual C # 2008». Однако использование номеров версий Visual Studio в целом является плохой идеей, так как, к примеру, имеет мало смысла при сборке с Mono. Язык C # имеет четко определенные номера версий ... мы знаем, какой продукт Visual C # первоначально представил эту версию C #, но это не одно и то же.
  • 0
    @JonSkeet, нет, не знаю. Хотел попросить вас (и другого ответчика) обновить ваш ответ, но так как мой комментарий стал слишком длинным, я решил тогда поставить его в качестве ответа. Спасибо за вашу информацию
Показать ещё 1 комментарий
0

Вы можете найти последнюю версию по ссылке ниже: - https://www.guru99.com/c-sharp-dot-net-version-history.html

Ещё вопросы

Сообщество Overcoder
Наверх
Меню