Каковы правильные номера версий для С#? Что вышло, когда? Почему я не могу найти ответы на вопрос о С# 3.5?
Этот вопрос прежде всего помогает тем, кто ищет ответ, используя неправильный номер версии, например С# 3.5. Надежда состоит в том, что любой, кто не найдет ответ с неправильным номером версии, найдет этот вопрос, а затем повторит поиск с правильным номером версии.
Ответ 1
История версий языка С#:
Это версии С#, известные на момент написания этой статьи:
- С# 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 г.). Реализуется Рослином. Особенности: инициализаторы для автоматически реализуемых свойств, использующие директивы для импорта статических элементов, фильтры исключений, инициализаторы элементов,
await
в catch
и finally
, методы расширения Add
в инициализаторах коллекции.
- С# 7.0 выпущен с .NET 4.7 и VS2017 (март 2017 г.) Основные новые функции: кортежи, ref localals и ref return, шаблон соответствие (включая операторы переключения на основе шаблона), встроенные объявления параметров
out
, локальные функции, двоичные литералы, разделители цифр и произвольный асинхронный возврат.
- С# 7.1 выпущен с VS2017 v15.3 (август 2017 г.) Новые функции: асинхронный основной, вывод имени члена кортежа, выражение по умолчанию, сопоставление с шаблоном.
- С# 7.2, выпущенный с VS2017 v15.5 (ноябрь 2017 г.) Новые функции: модификатор закрытого защищенного доступа, Span & lt; T & gt;, также называемый внутренним указателем, также называемый stackonly struct, все остальное.
- С# 7.3 выпущено с VS2017 v15.7 (май 2018). Новые функции: enum, делегат и
unmanaged
ограничения общего типа. ref
переназначение. Небезопасные улучшения: инициализация stackalloc
, открепленные индексированные буферы fixed
, пользовательские операторы fixed
. Улучшено разрешение перегрузки. Переменные выражения в инициализаторах и запросах. ==
и !=
определены для кортежей. Поля поддержки авто-свойств теперь могут быть нацелены на атрибуты.
- С# 8.0 выпущено с .Net Core 3.0 и VS2019 v16.3 (сентябрь 2019). Основные новые функции: обнуляемые ссылочные типы, асинхронные потоки, индексы и диапазоны, члены только для чтения, с помощью объявлений,методов интерфейса по умолчанию, статических локальных функций и улучшения интерполированных дословных строк.
В ответ на вопрос ОП:
Каковы правильные номера версий для С#? Что получилось когда? Почему я не могу найти ответы о С# 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 мая 2017 года языковая команда С# создала историю версий и функций С# в своем репозитории github: Функции, добавленные в языковые версии С#. Также есть страница, которая отслеживает будущие и недавно реализованные языковые функции.
Ответ 2
Самая большая проблема при работе с номерами версий С# заключается в том, что она не привязана к версии.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.
Ответ 3
Это то же самое, что и большинство ответов здесь, но для удобства составлено в виде таблицы, и для полноты изложения оно имеет версии 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 ║
║ 8.0 ║ 2019 ║ ║ ║ Apr 2019 ║
╚════════════╩════════════╩══════════════╩═════════════╩══════════════╝
Примечание. В настоящее время разработка .NET практически не зависит от VS, корреляции между версиями нет. Обратитесь к разделу " .NET Framework версии и зависимости " для получения дополнительной информации.
Ответ 4
С# 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
С# 8.0 с Visual Studio 2019 (в превью)
Ответ 5
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
Ответ 6
История версий С#:
С# - простой и мощный объектно-ориентированный язык программирования, разработанный Microsoft.
С# значительно изменился с момента его первого выпуска в 2002 году. С# был представлен с.NET Framework 1.0.
В следующей таблице перечислены важные функции, представленные в каждой версии С#.
![Enter image description here]()
И последняя версия С# доступна в версиях С#.
Ответ 7
Я обобщил большинство версий этой таблицы. Единственными недостающими должны быть версии 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)?
![Version]()
Ответ 8
Вы можете проверить последние версии С# здесь
![C# Versions]()
Ответ 9
Сравнивая статьи 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 соответствует (или, вернее, может быть целью):
Ответ 10
Вы можете найти последнюю версию по ссылке ниже: - https://www.guru99.com/c-sharp-dot-net-version-history.html
Ответ 11
История версий С# (пересмотренная):
Это версии С#, известные на момент написания этой статьи:
- С# 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
), выражения запросов - С# 3.5 Нет такой вещи, С# 3.0 присутствует в .NET 3.5, пожалуйста, не путайте !!!
- С# 4.0 → выпущен с .NET 4 и VS2010 (апрель 2010). Основные новые функции: поздняя привязка (
dynamic
), общая дисперсия делегата и интерфейса, расширенная поддержка COM, именованные аргументы, тип данных кортежа и необязательные параметры. - С# 5.0 → выпущен с .NET 4.5 и VS2012 (август 2012 г.). Основные функции: асинхронное программирование, атрибуты информации о вызывающем абоненте. Разрывное изменение: закрытие переменной цикла.
- С# 6.0 → выпущен с .NET 4.6 и VS2015 (июль 2015 г.). Осуществляется Рослин. Особенности: инициализаторы для автоматически реализуемых свойств, использование директив для импорта статических элементов, фильтры исключений, инициализаторы элементов,
await
в catch
и, finally
, расширение Add
методы в инициализаторах коллекции. - С# 7.0 → выпущено с .NET 4.7 и VS2017 (март 2017 г.) Основные новые функции: кортежи, локальные ссылки и возврат ref, сопоставление с образцом (включая операторы переключения на основе шаблона), объявления параметров встроенного
out
, локальные функции, двоичные литералы, цифра разделители и произвольные асинхронные возвраты. - С# 7.1 → выпущено с VS2017 v15.3 (август 2017 г.) Новые функции: асинхронное основное, вывод имени члена кортежа, выражение по умолчанию, сопоставление с шаблоном.
- С# 7.2 → выпущено с VS2017 v15.5 (ноябрь 2017 г.) Новые функции: частный модификатор защищенного доступа, Span <T>, он же внутренний указатель, aka stackonly struct, все остальное.
- С# 7.3 → выпущено с VS2017 v15.7 (май 2018). Новые функции: перечисление, делегирование и
unmanaged
ограничения общего типа. ref
переназначение. Небезопасные улучшения: инициализация stackalloc
, не fixed
индексированные fixed
буферы, пользовательские fixed
операторы. Улучшено разрешение перегрузки. Переменные выражения в инициализаторах и запросах. ==
и !=
определено для кортежей. Поля поддержки авто-свойств теперь могут быть нацелены на атрибуты. - С# 8.0 → в настоящее время в предварительном просмотре, бета-версия доступна с VS2019 v16.0 (апрель 2019). Ожидаемые новые функции: ненулевые ссылочные типы, поддержка
IAsyncEnumerable<T>
, диапазоны и методы интерфейса по умолчанию.