Программирование

Версии C# и даты выхода: почему нет C# 3.5?

Правильные версии C#: 1.0, 2.0, 3.0 и далее с датами релизов. Объяснение, почему нет C# 3.5 — это путаница с .NET Framework 3.5. Полная хронология, история и советы по поиску на Microsoft Learn.

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

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

Правильные номера версий для C# — это 1.0, 2.0, 3.0, 4.0, 5.0 и далее; даты их выхода привязаны к релизам Visual Studio и .NET (например, C# 3.0 вышел в 2007 вместе с .NET 3.5). Путаница с «C# 3.5» возникает потому, что есть .NET Framework 3.5, но отдельной языковой версии C# 3.5 никогда не было — язык в этом наборе оставался C# 3.0. Если вы искали «C# 3.5», ищите «C# 3.0» и соответствующий релиз .NET/Visual Studio для даты и описания функций.


Содержание


Версии C# и даты их выхода

Коротко: номера языка C# нумеруются отдельно от версий .NET и Visual Studio. Это значит, что фреймворк .NET имеет свою нумерацию (например, .NET 3.5), а язык — свою (например, C# 3.0). Такая независимость — источник большинства ошибок при поиске информации о «C# 3.5».

Официальная таблица версий C# с датами и ключевыми изменениями доступна на Microsoft Learn; там видно, какие функции и когда были добавлены, и как номера языка соотносятся с релизами .NET/VS: Microsoft Learn — C# version history (EN) и русская версия страницы: Microsoft Learn — История языка C# (RU).

Как это читать

  • Номер языка (C# X.Y) отражает изменения синтаксиса/семантики языка и возможности компилятора.
  • Версия .NET (например, .NET Framework 3.5) отражает набор библиотек, рантайм и связанные инструменты.
  • Часто новый фреймворк включает библиотеки, использующие возможности новой версии языка, но сам язык может сохранять тот же номер. Знакомая пара: .NET Framework 3.5 включал библиотеки, реализующие LINQ, но язык оставался C# 3.0.

Если вам нужна официальная и полная сводка по релизам — смотрите Microsoft Learn (ссылка выше). Там же указаны даты выхода ключевых версий и короткое описание добавленных возможностей.


Полная хронология версий C# (с датами)

Ниже — краткая хронология основных версий языка C# и годы их появления. Для деталей по каждой версии (точные даты, релизные заметки, список фич) открывайте официальную страницу Microsoft Learn.

  • C# 1.0 — 2002 (Visual Studio .NET 2002). Первый официальный релиз языка.
  • C# 2.0 — 2005 (Visual Studio 2005 / .NET 2.0). Крупные фичи: generics, partial types, nullable types, iterators, anonymous methods.
  • C# 3.0 — 2007 (Visual Studio 2008 / .NET 3.5). LINQ, лямбда-выражения, автоматические свойства, expression trees, расширяющие методы.
  • C# 4.0 — 2010 (Visual Studio 2010 / .NET 4.0). dynamic, ковариантность/контрвариантность, опциональные параметры.
  • C# 5.0 — 2012 (вместе с .NET 4.5). Асинхронность: async / await.
  • C# 6.0 — 2015 (Visual Studio 2015 / Roslyn). Синтаксический сахар: nameof, null-conditional, expression-bodied members и т.д.
  • C# 7.x — 2017–2018 (Visual Studio 2017 и обновления). Кортежи, pattern matching, улучшения в работе с ref/out и прочее (7.0, 7.1, 7.2, 7.3).
  • C# 8.0 — 2019 (сопровождал .NET Core 3.0 / SDK). Nullable reference types, async streams, ranges/indices.
  • C# 9.0 — 2020 (с .NET 5). Records, init-only properties, расширенное pattern matching.
  • C# 10.0 — 2021 (с .NET 6). Global usings, file-scoped namespaces, record structs.
  • C# 11.0 — 2022 (с .NET 7). Raw string literals, required members, улучшения pattern matching и др.
  • C# 12.0 — 2023 (с .NET 8). Набор новых языковых улучшений (подробности на MS Learn).
  • C# 13.0 — 2024 (с .NET 9). Релиз и фичи — см. официальную документацию.
  • C# 14.0 — 2025 (с .NET 10). Последние анонсы и изменения — смотрите примечания релиза.

Эта хронология подтверждается официальной страницей Microsoft и независимыми справочными материалами (например, Wikipedia по C#). Для точных дат и полного списка фич — смотрите страницу с историей версий на Microsoft Learn.


Почему нет C# 3.5

Короткий ответ: потому что такой версии языка не было выпущено. Есть .NET Framework 3.5 — и он вышел в 2007 и включал библиотеки, которые использовали возможности языка, добавленные в C# 3.0 (например, LINQ). Люди смешивают номера фреймворка и номера языка, и поэтому появился миф про «C# 3.5».

Пример: LINQ как синтаксис/фичи языка — это часть C# 3.0. Но реализации библиотек LINQ (System.Linq и прочие) появились в .NET Framework 3.5. В результате многие говорят «3.5», имея в виду фреймворк. Сообщество это часто разъясняет — см. обсуждение на Stack Overflow: What are the correct version numbers for C#?. Официальное подтверждение — на Microsoft Learn: История C# (RU) — там прямо указывается, что отдельной версии C# 3.5 не было.

Итог: если вы ищете «C# 3.5», вам нужен материал про C# 3.0 (язык) и про .NET Framework 3.5 (библиотеки/рантайм). Поисковая фраза может включать оба термина: «C# 3.0 LINQ .NET 3.5» — так вы увидите и синтаксис, и релиз фреймворка.


Небольшой список практических поисковых запросов и приёмов, которые работают лучше, чем «C# 3.5»:

  • Поисковые фразы (русские):

  • “C# 3.0 дата выхода”

  • “C# 3.0 LINQ Visual Studio 2008”

  • “версии C# история Microsoft Learn”

  • “C# 5.0 async await дата”

  • Поисковые фразы (англ. для расширенного поиска):

  • “C# version history Microsoft Learn”

  • “C# 3.0 release date”

  • “what features came in C# 3.0 LINQ”

Советы:

  • Добавляйте год или релиз Visual Studio (например, “VS2008”) — это быстро сузит результаты.
  • Если вам нужна и библиотека, и язык — указывайте оба: “C# 3.0 .NET 3.5 LINQ”.
  • Для авторитетной информации первым открывайте Microsoft Learn — там собрана официальная хронология с описанием фич и датами: https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history.
  • Сообщества и Q&A (Stack Overflow) полезны, если хотите примеры миграции или объяснение путаницы между версией языка и фреймворка.

Небольшая шпаргалка для ваших закладок: если встречаете в тексте «.NET 3.5», думайте: это фреймворк; чтобы узнать, какие языковые конструкции поддерживает компилятор, смотрите номер языка (например, C# 3.0).


Источники

  1. Microsoft Learn — C# version history (EN)
  2. Microsoft Learn — История языка C# (RU)
  3. Stack Overflow — What are the correct version numbers for C#?
  4. C Sharp (programming language) — Wikipedia
  5. C# Version History — Tutorialsteacher

Заключение

Коротко: версии языка — это C# 1.0, 2.0, 3.0, 4.0 и т.д.; даты их выхода обычно совпадают с релизами Visual Studio / .NET (см. Microsoft Learn). «C# 3.5» как отдельной версии языка не было — это смешение с .NET Framework 3.5, который использовал возможности C# 3.0. Если вы искали «C# 3.5», перейдите к материалам по C# 3.0 и по .NET 3.5 — они дадут нужные даты и описание функций.

Авторы
Проверено модерацией
Модерация
Версии C# и даты выхода: почему нет C# 3.5?