C# (или си шарп) – это высокоуровневый объектно-ориентированный язык программирования. Он был разработан в конце 90-х – начале 00-х годов компанией Microsoft для ее фирменных инструментов и сред. Так, он используется во всех реализациях среды .NET, например Framework или Core.
История возникновения
В 1998 году компания Microsoft решила выпустить прикладной язык для своих программных продуктов. За основу при его разработке было решено взять Java. Однако создатели Java, корпорация Sun Microsystems, подали на Microsoft в суд за нарушение права интеллектуальной собственности.
Суд Microsoft проиграли, поэтому им пришлось создавать язык с нуля. Впрочем, несмотря на это, язык все равно остался достаточно похожим на Java.
Первая версия C# была анонсирована в 2000 году. А в 2002 состоялся релиз. Одновременно с C# вышла сопутствующая ему среды разработки Visual Studio.
С тех пор на свет появились уже семь версий языка и готовится к выходу восьмая. C# стал одним из самых популярных языков программирования и обогнал своего прародителя – Java.
Кстати: Поскольку, по сути дела, C# разрабатывался на основе Java, знающим этот язык C# будет выучить гораздо проще.
Особенности
C# создавался как прикладной язык для работы в исполняющей среде CLR. Поэтому его возможности во многом зависят от возможностей CLR.
По сути, CLR – это двигатель языка. Ведь с его помощью реализуются такие важные функции, как контроль памяти, компиляция, обеспечение безопасности, выполнение написанного кода, а также многие другие.
Язык может использовать библиотеки BCL. Также широко применяется набор классов от .NET Framework.
C# имеет единую систему типов. Все они, в том числе типы примитивы «int» и «double», идут от единственного корневого типа «object». Это означает, что все типы имеют абсолютно одинаковый набор операций, с которыми можно работать так же, как и с операциями других их видов. Такая унификация сильно упрощает изучение языка и программирование на нем.
Кроме того, C#, несмотря на то, что является объектно-ориентированным языком, поддерживает и компонентно-ориентированное программирование. Ведь современные тенденции в программировании – это создание компонентов программ в виде независимых пакетов, каждый из которых отвечает за ту или иную функцию конечного продукта. Одна из отличительных особенностей таких компонентов – программирование на основе методов, свойств, событий. С помощью C# можно строить конструкции, позволяющие реализовывать этот подход к созданию программ.
C# имеет ряд функций, благодаря которым приложения, написанные на нем надежно, стабильно работают. Вот они:
- Удаление мусора. Эта функция позволяет автоматически очистить память от неиспользуемых или уничтоженных объектов;
- Обработка исключений. Позволяет находить и устранять ошибки;
- Строгая типизация. Благодаря ей невозможно обратиться к неинициализированным переменным, покинуть пределы массива или неконтролируемо привести типы.
Синтаксис
Синтаксис этого языка ближе всего к C++ и Java. Его отличительными особенностями являются:
- Четкая, однозначная типизация;
- Полиморфизм;
- Поддержка перегрузки операторов;
- Наличие указателей на функции-члены;
- Поддержка свойств, атрибутов, событий и исключений.
Версии языка
С момента возникновения и до настоящего времени C# имел несколько версий. Вот какие изменения он претерпевал от версии к версии:
- 1.0, 1.2, 1.3. были представлены и одобрены как стандарты ECMA и ISO/IEC;
- 3.0 и 4.0. В этих версиях в язык были введены команды var и dynamic, которые позволили выводить типы для полной типизации;
- 5.0. Добавлены команды async и await, упрощающие вызов асинхронных функций;
- 6.0. Язык дополнили оператором распространения нулевых значений, фильтрами исключений, а также множеством других средств, позволяющих значительно упростить код;
- 7.0. Введены переменные out, кортежи и их деконструкторы, шаблоны с is и switch, локальные переменные, выражения throw.
В грядущей версии 8.0 планируется ввести обнуляемые ссылочные типы, асинхронные потоки, а также ряд других улучшений.
Достоинства
К плюсам C# можно отнести:
- Относительная простота языка для изучения;
- Наличие собственной среды для разработки;
- Наличие большого количества готовых классов для применения в различных ситуациях;
- Наличие возможности работы с памятью напрямую;
- Удобный синтаксис;
- Возможность интеграции с другими языками, например C или C++, с помощью всего одной команды;
- Высокая открытость текстов библиотек.
Где применяется
Поскольку C# - разработка компании Microsoft, то применяется он в основном в ее продукции. Вот где используется этот язык:
- Mono – созданный на базе свободно распространяемого ПО проект для программирования на C#. Объединяет в себе компилятор, отладчик и среду исполнения. Кроме того, имеет обширные библиотеки для языка;
Кстати: При помощи Mono можно программировать на C# не только на Windows, но и на других платформах, таких, как Linux или MacOS.
- DirectX – API для создания приложений на Windows, чаще всего используемый для разработки игр. С его помощью осуществляется полное управление игровым приложением и его коннекция с «железом»: на экран выводится картинка, поступает звук на колонки, обрабатываются сигналы с контроллеров, обеспечивается соединение по сети;
- Unity – трехмерный движок для создания компьютерных игр, работающий на всех основных игровых платформах, среди которых Microsoft, Linux, Playstation 3, Xbox 360, а также основные мобильные операционные системы.
Примеры
Вот так выглядит написание программы для выведения на экран ставшего классическим словосочетания «Hello world»:
А вот так пишется этот пример с присвоением классов различным объектам кода:
Насколько сложно выучить
C# считается языком со средним порогом вхождения. Его изучение не представит серьезной сложности. Кроме того, большой плюс в освоении – огромное количество учебной литературы, а также разнообразных инструкций, которые периодически выпускает Microsoft. Найти их можно на официальном сайте компании. Кроме того, там размещены видеоуроки по C# и рекомендации по разработке приложений в различных областях, от игростроя до бизнеса.
Кстати: Для обучения языку совершенно не обязательно покупать Visual studio. Существует ее бесплатная версия Express, которую можно скачать на сайте Microsoft. Единственное ограничение этой версии программы – невозможность использования в коммерции.