Start Debugging
RU

История версий языка C#

Эволюция C# превратила его в современный высокопроизводительный язык. Это руководство отслеживает каждую важную веху. Ранние годы (C# 1.0 - 1.2). C# был выпущен в 2002 году как основной язык для .NET Framework. Он напоминал Java, но с фокусом на разработке под Windows. Версия 1.2 появилась вскоре после с небольшими...

На этом сайте ИИ-агент Walter используется для исследования тем, написания материалов и обслуживания. Подготовка и проверка материалов

Эволюция C# превратила его в современный высокопроизводительный язык. Это руководство отслеживает каждую важную веху.

Ранние годы (C# 1.0 – 1.2)

C# был выпущен в 2002 году как основной язык для .NET Framework. Он напоминал Java, но с фокусом на разработке под Windows. Версия 1.2 появилась вскоре после с небольшими улучшениями, такими как поддержка IDisposable в циклах foreach.

У языка были следующие цели:

  • Он задуман как простой, современный, универсальный объектно-ориентированный язык программирования.
  • Он должен включать строгую проверку типов, проверку границ массивов, обнаружение попыток использования неинициализированных переменных, переносимость исходного кода и автоматическую сборку мусора.
  • Он предназначен для разработки программных компонентов, которые могут использовать преимущества распределённых сред.
  • Поскольку переносимость для программистов очень важна, особенно для тех, кто уже знаком с C и C++, C# подходит лучше всего.
  • Обеспечить поддержку интернационализации, так как это было очень важно.
  • Он задуман подходящим для написания приложений как для систем с хостом, так и для встраиваемых систем.

Источник: цели проектирования C#

Крупные сдвиги в продуктивности (C# 2.0 – 5.0)

Эти версии представили возможности, которые мы используем больше всего сегодня.

  • C# 2.0: Generics, анонимные методы и nullable-типы изменили то, как мы работаем с данными.
  • C# 3.0: LINQ, лямбда-выражения и методы расширения значительно упростили запросы к данным.
  • C# 4.0: Эта версия добавила ключевое слово dynamic и необязательные параметры.
  • C# 5.0: Ключевые слова async и await совершили революцию в асинхронном программировании.

Эра современного компилятора (C# 6.0 – 9.0)

С компилятором Roslyn обновления стали быстрее и чаще.

  • C# 6.0 и 7.0: Эти версии сосредоточились на “синтаксическом сахаре”, таком как члены с телом-выражением и кортежи.
  • C# 8.0: Ссылочные типы, допускающие null, помогли разработчикам избегать частых исключений null-pointer.
  • C# 9.0: Records и операторы верхнего уровня упростили моделирование данных и сократили шаблонный код.

Недавние улучшения (C# 10.0 – 13.0)

Язык теперь развивается ежегодно вместе с .NET.

  • C# 10 и 11: Глобальные директивы using и сырые строковые литералы повысили продуктивность разработчика.
  • C# 12 и 13: Первичные конструкторы для классов и улучшения ref struct сохранили конкурентоспособность языка.

Что нового в C# 14?

Выпущенный вместе с .NET 10, C# 14 вводит несколько улучшений качества жизни.

Ключевое слово field

Вам больше не нужно вручную объявлять поля поддержки для свойств. Ключевое слово field позволяет напрямую обращаться к сгенерированному компилятором полю внутри аксессоров.

public string Name { 
    get => field; 
    set => field = value ?? "Unknown"; 
}

Члены расширений

C# 14 расширяет методы расширения. Теперь вы можете определять свойства расширения, статические члены и даже операторы внутри нового блока extension.

Другие ключевые возможности

  • Null-условное присваивание: Используйте ?.= для присваивания значений только если цель не null.
  • Неявные преобразования в Span: Массивы и строки теперь преобразуются в span более естественно.
  • Модификаторы лямбды: Вы можете использовать ref, in и out для параметров лямбды без явных типов.
  • Частичные конструкторы: Генераторы исходного кода теперь могут определять сигнатуры конструкторов в частичных классах.

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.