c# - see - visual studio change.net framework version
Каковы правильные номера версий для C#? (6)
Каковы правильные номера версий для C #? Что вышло, когда? Почему я не могу найти ответы на вопрос о C # 3.5 ?
Этот вопрос прежде всего помогает тем, кто ищет ответ, используя неправильный номер версии, например C # 3.5 . Надежда состоит в том, что любой, кто не найдет ответ с неправильным номером версии, найдет этот вопрос, а затем повторит поиск с правильным номером версии.
История версий языка C #:
Это версии C #, известные на момент написания этой статьи:
- C # 1.0 выпущен с .NET 1.0 и VS2002 (январь 2002 г.)
- C # 1.2 (как ни странно); выпущен с .NET 1.1 и VS2003 (апрель 2003 г.). Первая версия для вызова
Dispose
наIEnumerator
которая реализовалаIDisposable
. Несколько других мелких особенностей. - C # 2.0 выпущен с .NET 2.0 и VS2005 (ноябрь 2005 г.). Основные новые возможности: дженерики, анонимные методы, типы с нулевым значением, блоки итераторов
- C # 3.0 выпущен с .NET 3.5 и VS2008 (ноябрь 2007 г.). Основные новые функции: лямбда-выражения, методы расширения, деревья выражений, анонимные типы, неявное типирование (
var
), выражения запросов - C # 4.0 выпущен с .NET 4 и VS2010 (апрель 2010 г.). Основные новые возможности: поздняя привязка (
dynamic
), дисперсия делегата и интерфейс, общая поддержка COM, именованные аргументы, тип данных кортежа и необязательные параметры - C # 5.0 выпущен с .NET 4.5 и VS2012 (август 2012 г.). Основные возможности : асинхронное программирование, атрибуты информации об абоненте. Нарушение изменения: закрытие переменной цикла .
- C # 6.0 выпущен с .NET 4.6 и VS2015 (июль 2015 г.). Реализован Roslyn . Features : инициализаторы для автоматически реализованных свойств, использование директив для импорта статических элементов, фильтры исключений, инициализаторы элементов,
await
вcatch
и,finally
, расширение.Add
методы в инициализаторы коллекции. - C # 7.0, выпущенный с .NET 4.7 и VS2017 (март 2017 г.) Основные новые функции : tuples , ссылки ref ref и возврат ref , сопоставление шаблонов (включая инструкции на основе шаблонов), встроенные объявления параметров , локальные функции , бинарные литералы, разделители цифр , и произвольные асинхронные возвращения .
- C # 7.1 выпущен с VS2017 v15.3 (август 2017). Новые функции: асинхронный main , вывод имени члена tuple , выражение по умолчанию , сопоставление образцов с дженериками .
- C # 7.2 выпущен с VS2017 v15.5 (ноябрь 2017 г.). Новые возможности: частный защищенный доступный модификатор , Span <T>, aka указатель на внутреннюю область, aka stackonly struct , все остальное .
- C # 7.3 выпущен с VS2017 v15.7 (май 2018 г.). Новые возможности: перечисление, делегирование и
unmanaged
ограничения общего типа .ref
переназначение. Небезопасные улучшения: инициализацияstackalloc
, неустановленные индексированныеfixed
буферы, настраиваемыеfixed
операторы. Улучшено разрешение перегрузки. Выражение переменных в инициализаторах и запросах.==
и!=
для кортежей. Теперь поля свойств Auto-properties могут быть нацелены на атрибуты. - C # 8.0 в настоящее время в предварительном просмотре. Ожидаемые новые возможности : непустые ссылочные типы ,
IAsyncEnumerable<T>
поддержка, диапазоны и методы интерфейса по умолчанию.
В ответ на вопрос ОП:
Каковы правильные номера версий для C #? Что вышло, когда? Почему я не могу найти ответы на вопрос о C # 3.5?
Нет такой вещи, как C # 3.5 - причина путаницы здесь в том, что C # 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.
Более подробная информация о взаимоотношениях между языком, версией и версиями рамок доступна на сайте C # в глубине . Сюда входит информация о том, какие функции C # 3.0 вы можете использовать при настройке .NET 2.0. (Если кто-то хочет привести весь контент в этот вики-ответ, они будут рады.)
С 3 мая 2017 года группа языков C # создала историю версий и функций C # в своем реестре github: возможности, добавленные в версии языка C # . Также есть страница, которая отслеживает предстоящие и недавно реализованные языковые функции .
Вы можете проверить последние версии C # here
Сравнивая статьи MSDN «Что нового в языке C # 2.0 и компиляторе» и « Что нового в Visual C # 2005 », можно сделать вывод, что «C # major_version.minor_version» придумано в соответствии с нумерацией версий компилятора.
Существует C # 1.2, соответствующая .NET 1.1 и VS 2003, а также называемый Visual C # .NET 2003 .
Но в дальнейшем Microsoft перестала увеличивать номера младших (после точки) или иметь их, отличные от нуля, 0
. Хотя следует отметить, что C #, соответствующий .NET 3.5, назван в msdn.microsoft.com как «Visual C # 2008 с пакетом обновления 1» .
Существует два параллельных ввода: по основной нумерации версий .NET / компилятора и нумерации Visual Studio.
C # 2.0 является синонимом Visual C # 2005
C # 3.0 соответствует (или, вернее, цели):
- .NET 2.0 <==> Visual C # 2005
- .NET3.0 <==> Visual C # 2008
- .NET 3.5 <==> Visual C # 2008 с пакетом обновления 1
Это то же самое, что и большинство ответов здесь, но в табличной форме для удобства, и для полноты он имеет версии 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 ».
VERSION _____
СПЕЦИФИКАЦИЯ ЯЗЫКА ______
MICROLSOFT COMPILER
C # 1.0 / 1.2 ____
Декабрь 2001 года ? / 2003 ? ___________
Январь 2002 года ?
C # 2.0 _______
сентябрь 2005 г. ________________
Ноябрь 2005 г. ?
C # 3.0 _______
май 2006 года _____________________
ноябрь 2006 года ?
C # 4.0 _______
март 2009 года (проект) ______________
апрель 2010 года ?
C # 5.0; выпущен в .NET 4.5 в августе 2012 года
C # 6.0; выпущен в .NET 4.6 2015
C # 7.0; выпущен с .NET 4.7 2017
История версий C #:
C # - простой и мощный объектно-ориентированный язык программирования, разработанный Microsoft.
C # значительно изменился с момента его первого выпуска в 2002 году. C # был представлен с .NET Framework 1.0.
В следующей таблице перечислены важные функции, представленные в каждой версии C #.
И последняя версия C # доступна в версиях C # .