История версий языка 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 г.). Осуществлено Рослин . Особенности : инициализаторы для автоматически реализуемых свойств, использование директив для импорта статических элементов, фильтров исключений, инициализаторов элементов,
await
в catch
и finally
, методы расширения Add
в инициализаторах коллекции.
- C # 7. 0 выпущен с. NET 4. 7 и VS2017 (март 2017 г.) Основные новые функции : кортежей , ref locals и ref return , сопоставление с шаблоном (включая операторы переключателей на основе шаблона), встроенные
out
функции 359, 339 388 838, декларации о параметрах 35263, 8458, функции, операторы 35352458, функции, операторы, код: 356458709, встроенные функции out
, функции: 352459, функции: 35945836, функции: 352458, функции: 3, 8, операторы, операторы и функции, кодирование: 353445436, функции: 352459, функции: 352454, функции: 359459, функции: 359, 8458, функции, операторы и функции. двоичных литералов, разделители цифр и произвольных асинхронных возвратов .
- C # 7. 1 выпущен с VS2017 v15. 3 (август 2017 г.) Новые функции: асинхронный основной , вывод имени члена кортежа , выражение по умолчанию , сопоставление с шаблоном универсальных элементов .
- C # 7. 2 выпущен с VS2017 v15. 5 (ноябрь 2017 г.) Новые функции: модификатор частного защищенного доступа , Span & lt; T & gt ;, он же внутренний указатель, aka stackonly struct , все остальное .
- C # 7. 3 выпущен с VS2017 v15. 7 (май 2018 г.) Новые возможности: перечисление , делегат и ограничения общего типа
unmanaged
. ref
переназначение. Небезопасные улучшения: инициализация stackalloc
, открепленные индексированные буферы fixed
, пользовательские операторы fixed
. Улучшено разрешение перегрузки. Переменные выражения в инициализаторах и запросах. ==
и !=
, определенные для кортежей. Поля поддержки авто-свойств теперь могут быть нацелены на атрибуты.
- C # 8. 0 в настоящее время в предварительном просмотре. Ожидаемые новые функции : Необнуляемые ссылочные типы , поддержка
IAsyncEnumerable
, диапазоны и методы интерфейса по умолчанию.
В ответ на вопрос ОП:
Каковы правильные номера версий для 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. ххх.
Более подробная информация о взаимосвязи между языком, средой исполнения и версиями фреймворка доступна на сайте C # в Depth . Это включает в себя информацию о том, какие функции C # 3. 0 вы можете использовать при таргетинге. NET 2. 0. (Если кто-то хочет внести весь контент в этот вики-ответ, он может это сделать. )
По состоянию на 3 мая 2017 года языковая команда C # создала историю версий и функций C # в своем репозитории github: Функции, добавленные в версии языка C # . Существует также страница , которая отслеживает будущие и недавно реализованные функции языка .