Что такое C#?

C# логотип

C# (произносится как See Sharp ) - это простой, современный, объектно-ориентированный и безопасный для типов язык программирования. C# берет свое начало в семействе языков C и будет сразу знаком программистам на C, C++, Java и JavaScript.

В этом туре представлен обзор основных компонентов языка в C# 8 и более ранних версиях. Если вы хотите изучить язык на интерактивных примерах, попробуйте ознакомиться с учебниками по введению в C#.

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

Несколько функций C# помогают создавать надежные и долговечные приложения. Сборка мусора автоматически возвращает память, занятую недоступными неиспользуемыми объектами. Обработка исключений обеспечивает структурированный и расширяемый подход к обнаружению и восстановлению ошибок. Типобезопасный дизайн языка делает невозможным чтение из неинициализированных переменных, индексирование массивов за их границы или выполнение непроверенных приведений типов.

C# имеет унифицированную систему типов. Все типы C#, включая примитивные типы, такие как int и double, наследуются от одного корневого объектного типа. Таким образом, все типы имеют набор общих операций, и значения любого типа могут храниться, транспортироваться и обрабатываться согласованным образом. Более того, C# поддерживает как пользовательские ссылочные типы, так и типы значений, что позволяет динамически выделять объекты, а также хранить легкие структуры в строке.

Для того чтобы программы и библиотеки на C# могли развиваться с течением времени совместимым образом, при разработке C# большое внимание было уделено версионности. Многие языки программирования уделяют этому вопросу мало внимания. В результате программы, написанные на этих языках, ломаются чаще, чем нужно, когда появляются новые версии зависимых библиотек. Аспекты дизайна C#, на которые непосредственно повлияли соображения версионности, включают раздельные модификаторы virtual и override, правила разрешения перегрузки методов и поддержку явного объявления членов интерфейса.

В более поздних версиях C# принял другие парадигмы программирования. В C# появились функции, поддерживающие методы функционального программирования, такие как лямбда-выражения. Другие новые возможности поддерживают разделение данных и алгоритмов, например, сопоставление шаблонов.

Источники