Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_po_programmirovaniyu_3_semestr.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.11 Mб
Скачать

О бщая система типов и общеязыковые спецификации (cts и cls)

Другим строительным блоком платформы .NET является CTS (общая система типов). Спецификации CTS полностью описывает все возможные типы данных и программные конструкции, поддерживаемые средой выполнения, указывают, как эти элементы могут взаимодействовать между собой и как они представляются в формате метаданных .NET.

CTS это общая система типов, представляющая собой формальное описание того, как должны определяться типы, предназначенные для использования в общеязыковой среде CLR. Для программиста, использующего технологию .NET, в основном, важно знать, как работать с пятью типами, определяемыми спецификациями CTS для выбранного языка программирования. Такими типами являются классы, структуры, интерфейсы, перечисления и делегаты. Кроме перечисленных типов, CTS определяют четкий набор базовых типов данных для обозначения целых и дробных чисел, строковых и логических переменных.

Следует заметить, что конкретный язык, совместимый с .NET, может и не поддерживать абсолютно все возможности, определенные CTS. В связи с этим используются связанные спецификации CLS (общеязыковые спецификации), которые определяют подмножество общих типов и программных конструкций, понятных всем языкам программирования, совместимым с .NET. Поэтому, если создаваемые вами .NET-типы опираются только на возможности, соответствующие CLS, то можно быть уверенным, что использовать их сможет любой совместимый с .NET язык. Если же использовать типы данных и программные конструкции, выходящие за пределы CLS, то нельзя будет гарантировать, что с вашей библиотекой программного .NET-кода сможет взаимодействовать любой другой язык программирования .NET.

Библиотека базовых классов

В добавление к спецификации CLR и CTS\CLS, платформа .NET предлагает библиотеку базовых классов (FCL), которая доступна всем языкам программирования .NET. Эта библиотека не только инкапсулирует различные примитивы, такие как потоки, файловый вывод, визуализация графики и взаимодействие с различными внешними устройствами, но и обеспечивает поддержку целого ряда сервисов, необходимых для большинства современных приложений.

Например, библиотеки базовых классов определяют типы, упрощающие доступ к базам данных, работу с XML, поддержку программной безопасности и создание Web-приложений. Схема высокоуровневых связей между CLR, CTS, CLS и библиотекой базовых классов показана на рис.1.2.

Таким образом CLR, CTS и CLS – это три ключевых и взаимосвязанных составляющих, которые обеспечивают преимущества платформы .NET.

Роль языка с#

Поскольку принципы .NET радикально отличаются от предшествующих технологий, то Microsoft специально разработала новый язык программирования С# для этой платформы. Язык С# является языком программирования, по синтаксису очень похожим на Java. С#, как и Java, основан на синтаксических конструкциях С++.

Многие синтаксические конструкции С# построены с учетом решений, принятых в Visual Basic 6.0 и С++. Например, формальные типы свойств, возможность объявления методов с переменным числом аргументов (через массивы параметров). Подобно С++, в С# позволяется перегрузка операций, создание структур, перечней и функций обратного вызова (посредством делегатов).

Благодаря тому, что C# является гибридом множества языков, то он является продуктом, который синтаксически так же "чист", как Java, почти так же прост, как VB6, и обладает почти такой же мощью и гибкостью, как С++. По сути, язык С# предлагает возможности, многие из которых присущи и всем другим языкам программирования, обеспечивающим поддержку .NET.

  • Не требует никаких указателей! Программы на С# не требуют прямого обращения к указателям, хотя и имеется возможность получить к ним доступ на более низком уровне).

  • Автоматическое управление памятью через сборку мусора. Поэтому в С# не поддерживается ключевое слово delete.

  • Формальные синтаксические конструкции для перечней, структур и свойств классов.

  • Аналогичная С++ перегрузка операций для пользовательских типов, но без лишней сложности.

  • Имеется возможность строить общие типы и общие члены с использованием синтаксиса, похожего на шаблоны С++.

  • Полная поддержка техники программирования, основанной на использовании интерфейсов.

  • Полная поддержка технологии аспектно-ориентированного программирования (АОП) через атрибуты. Это позволяет назначать характеристики типам и их членам, чтобы уточнить их поведение.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]