3.3 Возможности языка C#
Со стороны синтаксиса и возможностей языка, С# является как бы промежуточным вариантом между С++ и Visual Basic. Он унаследовал множество элементов из лучших языков на момент своего создания. Например, из языка С он имеет стиль синтаксиса для управляющих конструкций, блоков кода, описания сигнатуры методов и другие. С# делит с Java такие свойства, как отсутствие множественного наследования, отсутствие шаблонов, а также наличие сборщика мусора. Также в качестве заимствований языка C# можно записать ориентированность на создание компонент из Delphi. Но при всем этом C# имеет свой колорит.
Основными концепциями языка стали легкость использования и скорость выполнения. Отсюда и несколько меньшая мощность языка по сравнению, например, с С++, и сборщик мусора с управляемыми объектными ссылками, который позволяет не освобождать динамически используемую память вручную. Очистка производится в автоматическом режиме, забирая при этом процессорное время. Также легкость использования подразумевает безопасную работу с типами данных, что является одним из важнейших способов избегания большого количества ошибок. Несмотря на ориентированность на написание компонент и программирование в безопасной управляемой среде, С# позволяет писать для проекта и неуправляемый код.
Также одной из основных концепций является возможность рассмотрения любого типа данных, даже примитивных типа int, как объекты, что упрощает проблемы дизайна приложений. Это видно уже в реализации упаковки/распаковки.
В ключевые концепции языка включается не только простота создания программ, но и их поддержка. В связи с этим язык С# включает в себя возможность контроля версий и поддержку XML комментариев. Также для упрощения разработки, помимо автоматической уборщики мусора и безопасной работы с типами данных, в языке С# используется автоматическая инициализация переменных, при которой все типы, размещаемые в стеке, инициализируются нулями. Если объекты размещаются в куче и доступ к ним осуществляется по объектной ссылке, то эти ссылки инициализируются значением null, которая подразумевает указание ссылки на пустоту.
Еще одной интересной особенностью языка C# является пространство имен, аналогичное использованию пакетов в языке Java, которое позволяет построить иерархическую систему типов. Это позволяет избежать проблем именования и делает программный код более понятным.
Событийная модель и обратные вызовы в C# представляют собой новую концепцию объектно-ориентированного типа ссылки на функцию. В языке он называется делегатом, и позволяет описывать события компонента без каких-либо возвратных интерфейсов и лишних усилий. Достаточным условием является лишь использование ключевого слова event.
Помимо всего прочего в языке используется парадигма программирования атрибутов. Эта парадигма подразумевает сохранение мета-информации вместе с типом в компиляторных модулях. Также язык позволяет получать и проводить операции над этой информацией. Особенно это полезно тем, что компилятор, или даже дизайнер, может получить информацию о компоненте, не запуская его.
Одновременно с этим, возможность подобной работы с атрибутами позволяет использовать статичные и динамические библиотеки COM, COM+ и DLL в программах, которые работают в среде .NET. Причем доступ к таким библиотекам достигается в одно небольшое выражение. Работу с перечисляемыми типами позволяет обезопасить использование перечислений.
Также язык позволяет использовать структуры как типы данных. Работа с такими типами происходит по значению. Помимо использования вложенных массивов, активно используемых в Java, имеется возможность работать с многомерными массивами. Это позволяет оптимизировать производительность разрабатываемых программ.
- ВВЕДЕНИЕ
- ГЛАВА 1. ПРЕДНАЗНАЧЕНИЕ И ПРИНЦИП ПРИМЕНЕНИЯ МАТЕМАТИЧЕСКОГО МОДУЛЯ
- 1.1 Определение программного модуля
- 1.2 Определение математического модуля
- 1.3 Принцип применения математического модуля
- 1.3.1 Определение библиотеки
- 1.3.2 Принципы использования dll-библиотеки
- 1.3.3 Преимущества и недостатки использования dll-библиотек
- 1.4 Разработка технического задания
- 1.4.1 Общие требования
- 1.4.2 Поставленные требования к программному коду
- 1.4.3 Требования к разрабатываемой библиотеке
- ГЛАВА 2. РАЗРАБОТКА СТРУКТУРЫ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- 2.1 Общая характеристика математических моделей
- 2.2 Описание коэффициентов моделей
- 2.3 Разработка структуры классов
- ГЛАВА 3. ОПИСАНИЕ БИБЛИОТЕК МАТЕМАТИЧЕСКОГО МОДУЛЯ В MS VISUAL STUDIO
- 3.1 Описание среды разработки MS Visual Studio
- 3.2 Возникновение языка C#
- 3.3 Возможности языка C#
- 3.4 Реализация библиотеки классов в среде разработки MS Visual Studio
- 54.Библиотеки динамической компоновки dll
- 46. Библиотеки dll
- 40. Динамические библиотеки (dll).
- Библиотеки dll
- Тема 3. Разработка библиотеки подпрограмм на основе модуля Unit и библиотеки dll. Задание на выполнение курсовой работы
- 15. Понятие динамически подключаемой библиотеки. Структура dll-библиотеки. Создание dll-библиотеки. Использование dll-библиотеки в программе. Статический и динамический импорт.
- 4.3. Использование библиотек (dll)
- Основы разработки dll
- Разработка библиотек dll
- Идентификация функций в библиотеках dll