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


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

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


2025


источник


Ответы:


История версий языка 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 ref и возврат ref, сопоставление шаблонов (включая инструкции на основе шаблонов), встроенные outобъявления параметров, локальные функции, бинарные литералы, разделители цифр и произвольные асинхронные возвращения.
  • C # 7.1 выпущенный с VS2017 v15.3 (август 2017) Новые возможности: async main , Вывод имени члена кортежа , выражение по умолчанию , сопоставление образцов с дженериками ,
  • C # 7.2 выпущенный с VS2017 v15.5 (ноябрь 2017) Новые возможности: модификатор частного защищенного доступа , Span <T>, aka указатель интерьера, ака стековая структура , все остальное ,
  • 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 # , Есть также страница, которая отслеживает предстоящие и недавно реализованные языковые функции ,


2352



Самая большая проблема при работе с номерами версий C # заключается в том, что она не привязана к версии .NET Framework, которая, по-видимому, связана с синхронизированными релизами между Visual Studio и .NET Framework.

Версия C # фактически связана с компилятором, а не с каркасом. Например, в Visual Studio 2008 вы можете писать C # 3.0 и целевые .NET Framework 2.0, 3.0 и 3.5. Номенклатура C # 3.0 описывает версию синтаксиса кода и поддерживаемые функции так же, как ANSI C89, C90, C99 описать синтаксис / функции кода для C.

Взгляни на Моно , и вы увидите, что Mono 2.0 (в основном реализованная версия 2.0 .NET Framework из спецификаций ECMA) поддерживает синтаксис и функции C # 3.0.


234



Это то же самое, что и большинство ответов здесь, но в табличной форме для удобства, и для полноты он имеет версии 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, нет никакой корреляции между версиями каждого из них. См: https://docs.microsoft.com/en-us/dotnet/framework/migration-guide/versions-and-dependencies для большего.


165



  • C# 1.0 with Visual Studio.NET

  • C# 2.0 with Visual Studio 2005

  • C# 3.0 with Visual Studio 2008

  • C# 4.0 with Visual Studio 2010

  • C# 5.0 with Visual Studio 2012

  • C# 6.0 with Visual Studio 2015

  • C# 7.0 with Visual Studio 2017


162



VERSION_____LANGUAGE SPECIFICATION______MICROSOFT COMPILER

C# 1.0/1.2____December 2001?/2003?___________January 2002?

C# 2.0_______September 2005________________November 2005?

C# 3.0_______May 2006_____________________November 2006?

C# 4.0_______March 2009 (draft)______________April 2010?

C# 5.0; released with .NET 4.5 in August 2012

C# 6.0; released with .NET 4.6 2015

C# 7.0; released with .NET 4.7 2017


63



You can check the latest C# versions here C# Versions


36



C# Version History:

C# is a simple and powerful object-oriented programming language developed by Microsoft.

C# has evolved much since its first release in 2002. C# was introduced with .NET Framework 1.0.

The following table lists important features introduced in each version of C#.

Enter image description here

And the latest version of C# is available in C# Versions.


35



I've summarised most of the versions in this table. The only ones missing should be ASP.NET Core versions. I've also added different versions of ASP.NET MVC.

Note that ASP.NET 5 has been rebranded as ASP.NET Core 1.0 and ASP.NET MVC 6 has been rebranded as ASP.NET Core MVC 1.0.0. I believe this change occurred sometime around Jan 2016.

I have included the release date of ASP.NET 5 RC1 in the table, but I've yet to include ASP.NET core 1.0 and other core versions, because I couldn't find the exact release dates. You can read more about the release dates regarding ASP.NET Core here: When is ASP.NET Core 1.0 (ASP.NET 5 / vNext) scheduled for release?

Version


34