C# — язык программирования от Microsoft¶
C# (читается «си-шарп») — объектно-ориентированный язык программирования, разработанный компанией Microsoft под руководством Андерса Хейлсберга. Является частью платформы .NET и предназначен для создания разнообразных приложений: настольных, веб-, мобильных, облачных, игровых и научных. Синтаксис C# близок к C и C++, но лишён ряда сложных конструкций последних (например, множественного наследования классов и прямого указателя на память в обычном коде). Основной компилятор — Roslyn, основная реализация — открытое .NET-окружение Mono и .NET (ранее .NET Framework), кроссплатформенное с 2016 года.
¶История
Работа над языком началась в 1999 году в группе Microsoft под руководством Андерса Хейлсберга (ранее создавшего Delphi и Turbo Pascal в Borland). Первая публичная демонстрация состоялась в 2000 году на конференции PDC, релиз .NET Framework 1.0 и C# 1.0 произошёл в 2002 году.
Ключевые версии языка:
| Версия | Год | Основные нововведения |
|---|---|---|
| 1.0 | 2002 | Базовый синтаксис, классы, делегаты |
| 2.0 | 2005 | Обобщения (generics), анонимные методы, nullable-типы |
| 3.0 | 2007 | LINQ, лямбда-выражения, анонимные типы, автоматические свойства |
| 4.0 | 2010 | Динамическое программирование, именованные аргументы |
| 5.0 | 2012 | Асинхронное программирование (async/await) |
| 6.0 | 2015 | Интерполяция строк, оператор ?. |
| 7.0 | 2017 | Кортежи, pattern matching, out-переменные |
| 8.0 | 2019 | Ссылочные типы nullable, асинхронные потоки |
| 9.0 | 2020 | Записи (records), top-level statements |
| 10.0 | 2021 | Глобальные using, улучшения record |
| 11.0 | 2022 | Raw string literals, generic math |
| 12.0 | 2023 | Коллекционные выражения, primary constructors |
С 2016 года, после приобретения Xamarin, и особенно после релиза .NET Core, C# стал кроссплатформенным: компиляция и запуск возможны на Windows, Linux и macOS.
¶Основные характеристики
C# относится к статически типизированным языкам: тип переменной проверяется во время компиляции. Язык поддерживает:
- Объектно-ориентированное программирование — инкапсуляция, наследование, полиморфизм; вместо множественного наследования классов используется множественное наследование интерфейсов.
- Управляемую память — сборщик мусора (garbage collector) автоматически освобождает неиспользуемые объекты; прямая работа с указателями возможна только в небезопасном коде (unsafe).
- Собственную систему исключений — обработка ошибок через try/catch/finally.
- Обобщения — возможность писать типизированный код, работающий с разными типами данных.
- Асинхронное программирование — конструкции async/await, упрощающие работу с фоновыми операциями.
- LINQ — встроенную язык-ориентированную систему запросов для обработки коллекций.
Пример простой программы:
```csharp using System;
class Program { static void Main() { Console.WriteLine("Hello, World!"); } } ```
¶Платформа .NET
C# компилируется в промежуточный байт-код Common Intermediate Language (CIL), который выполняется в среде Common Language Runtime (CLR). Это обеспечивает кроссплатформенность, безопасность типов и интеграцию с другими языками .NET (F#, VB.NET). Современная платформа .NET (начиная с .NET 5, 2020) объединила ранее раздельные ветки .NET Framework и .NET Core.
¶Применение
- Веб-разработка — фреймворк ASP.NET Core, один из самых производительных серверных фреймворков по бенчмаркам TechEmpower.
- Игры — движок Unity, один из самых распространённых движков для инди- и мобильной разработки, использует C# как основной скриптовый язык.
- Десктопные приложения — WPF, WinForms, MAUI.
- Мобильная разработка — Xamarin и .NET MAUI для iOS и Android.
- Облачные сервисы — Azure SDK, микросервисы.
- Научные и инженерные расчёты — ML.NET, интеграция с F# для функциональных сценариев.
¶Восприятие и статистика
По данным ежегодных опросов Stack Overflow Developer Survey, C# стабильно входит в пятёрку-десятку самых используемых языков. В России C# широко применяется в корпоративной разработке, банковском секторе и игровой индустрии. Язык преподаётся в ряде технических вузов.
¶Интересные факты
- Изначально язык назывался «C-like» и «Cool», но первое название конфликтовало с товарным знаком, а второе — с внутренним кодовым названием проекта Microsoft.
- Андерс Хейлсберг отмечал, что при проектировании C# учитывались как сильные стороны C++ и Java, так и их недостатки.
- C# является основным языком для разработки расширений в Visual Studio.
Источники: официальная документация Microsoft Learn по C#; ежегодный Stack Overflow Developer Survey; «The C# Programming Language» (А. Хейлсберг и др., Addison-Wesley); история .NET на официальном блоге Microsoft.
