Каковы правильные номера версий для С#? Что вышло, когда? Почему я не могу найти ответы на вопрос о С# 3.5?
Этот вопрос прежде всего помогает тем, кто ищет ответ, используя неправильный номер версии, например С# 3.5. Надежда состоит в том, что любой, кто не найдет ответ с неправильным номером версии, найдет этот вопрос, а затем повторит поиск с правильным номером версии.
Это версии С#, известные на момент написания этой статьи:
Dispose
на IEnumerator
которая реализовала IDisposable
. Несколько других мелких особенностей.var
), выражения запросовdynamic
), дисперсия делегата и интерфейс, общая поддержка COM, именованные аргументы, тип данных кортежа и необязательные параметрыawait
в catch
и, finally
, расширение. Add
методы в инициализаторы коллекции.out
образцом ( в том числе на основе шаблонов отчетности коммутатора), встраивать out
деклараций параметров, локальные функции, бинарные литералы, значные разделители, и произвольные асинхронные возвращения.unmanaged
ограничения общего типа. ref
переназначение. Небезопасные улучшения: инициализация stackalloc
, неустановленные индексированные fixed
буферы, настраиваемые fixed
операторы. Улучшено разрешение перегрузки. Выражение переменных в инициализаторах и запросах. ==
и !=
для кортежей. Теперь поля свойств Auto-properties могут быть нацелены на атрибуты.IAsyncEnumerable<T>
поддержка, диапазоны и методы интерфейса по умолчанию.Каковы правильные номера версий для С#? Что вышло, когда? Почему я не могу найти ответы на вопрос о С# 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: возможности, добавленные в версии языка С#. Также есть страница, которая отслеживает предстоящие и недавно реализованные языковые функции.
Самая большая проблема при работе с номерами версий С# заключается в том, что она не привязана к версии.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.
Это то же самое, что и большинство ответов здесь, но для удобства составлено в виде таблицы, и для полноты изложения оно имеет версии 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 версии и зависимости " для получения дополнительной информации.
С# 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
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
История версий С#:
С# - простой и мощный объектно-ориентированный язык программирования, разработанный Microsoft.
С# значительно изменился с момента его первого выпуска в 2002 году. С# был представлен с.NET Framework 1.0.
В следующей таблице перечислены важные функции, представленные в каждой версии С#.
И последняя версия С# доступна в версиях С#.
Я обобщил большинство версий этой таблицы. Единственными недостающими должны быть версии 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)?
Вы можете проверить последние версии С# здесь
Сравнивая статьи 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 соответствует (или, вернее, может быть целью):
Вы можете найти последнюю версию по ссылке ниже: - https://www.guru99.com/c-sharp-dot-net-version-history.html