Составители:
Рубрика:
• Методы (methods).
Методы представляют собой функции классов. Они бывают ста-
тическими (static method) и объектными (instance method). Вы-
зываемый объектный метод всегда получает ссылку на объект,
для которого он вызывается. Объектные методы делятся на вир-
туальные и невиртуальные.
• Свойства (properties).
Свойство представляет собой пару методов, один из которых
возвращает некоторое значение, а другой устанавливает это зна-
чение.
• События (events).
События используются для асинхронного внесения изменений
в объект.
Типы-массивы также относятся к самоописывающим типам, то есть
каждый массив представляет собой объект в куче, доступ к которому осу-
ществляется через объектную ссылку. Хотя, строго говоря, типы-массивы
не являются классами, считается, что все они наследуют от библиотечно-
го класса System.Array. Типы-массивы интересны тем, что, в отличие от
классов, определяемых программистом самостоятельно, они формируют-
ся системой автоматически. То есть если мы имеем некоторый тип X, то
тип массива, состоящего из элементов типа X, нам уже объявлять не нуж-
но – об этом позаботится система выполнения.
Рис. 1.6. Особенности представления массивов
Массивы бывают как одномерными (в этом случае они обрабатыва-
ются особенно эффективно благодаря использованию специальных инст-
рукций CIL), так и многомерными. Кроме того, система поддерживает
массивы, нижняя граница которых отлична от нуля.
Введение в архитектуру Microsoft .NET Framework
15
Таблица 1.2. Типы с плавающей запятой
Для встроенных типов-значений определены правила преобразова-
ния значений одного типа в другой тип. Такие преобразования бывают су-
жающие (narrowing) и расширяющие (widening). При сужающих преобра-
зованиях значение с большей разрядностью переводится в значение с
меньшей разрядностью, что может приводить к потере значащих битов.
Расширяющие преобразования никогда не приводят к такой потере.
1.2.1.2. Самоописывающие ссылочные типы
В некоторых объектно-ориентированных языках программирования
(например, в C++) объекты могут храниться как в куче (в динамической
памяти), так и в переменных: глобальных (в статической памяти) и ло-
кальных (на стеке). Поэтому системы типов в таких языках содержат от-
дельные типы для самого объекта и для объектной ссылки (указателя на
объект).
В среде .NET объекты и объектные ссылки хранятся раздельно, а
именно: объекты хранятся в куче, а ссылки – в ячейках. Поэтому общая си-
стема типов спроектирована таким образом, что один и тот же ссылочный
тип может являться как типом объекта, так и типом объектной ссылки.
Каждый объект в куче содержит информацию о своем типе. Поэтому
ссылочные типы, представляющие объекты, называются самоописываю-
щими (self-describing).
Два самоописывающих типа являются встроенными – это
System.Object (или просто object в текстовом представлении CIL) и
System.String (или string). Тип System.Object является общим базовым
классом, от которого непосредственно или транзитивно наследует любой
другой класс. Тип System.String используется для представления строко-
вых данных в формате Unicode.
Основу самоописывающих типов составляют классы. Классы могут
агрегировать значения других типов, а также наследоваться друг от друга
(в .NET поддерживается только одиночное наследование). Классы могут
содержать следующие элементы:
• Поля (fields).
Поля являются ячейками, в которых хранятся значения других
типов.
14
CIL и системное программирование в Microsoft .NET
Тип Имя в .NET Описание
Framework
Class Library
float32 System.Single вещественное (32 бит)
float64 System.Double вещественное (64 бит)
Массив ссылочного типа
Массив типа-значения
14 CIL и системное программирование в Microsoft .NET Введение в архитектуру Microsoft .NET Framework 15 Таблица 1.2. Типы с плавающей запятой • Методы (methods). Методы представляют собой функции классов. Они бывают ста- Тип Имя в .NET Описание Framework тическими (static method) и объектными (instance method). Вы- Class Library зываемый объектный метод всегда получает ссылку на объект, float32 System.Single вещественное (32 бит) для которого он вызывается. Объектные методы делятся на вир- туальные и невиртуальные. float64 System.Double вещественное (64 бит) • Свойства (properties). Свойство представляет собой пару методов, один из которых Для встроенных типов-значений определены правила преобразова- возвращает некоторое значение, а другой устанавливает это зна- ния значений одного типа в другой тип. Такие преобразования бывают су- чение. жающие (narrowing) и расширяющие (widening). При сужающих преобра- • События (events). зованиях значение с большей разрядностью переводится в значение с События используются для асинхронного внесения изменений меньшей разрядностью, что может приводить к потере значащих битов. в объект. Расширяющие преобразования никогда не приводят к такой потере. Типы-массивы также относятся к самоописывающим типам, то есть каждый массив представляет собой объект в куче, доступ к которому осу- 1.2.1.2. Самоописывающие ссылочные типы ществляется через объектную ссылку. Хотя, строго говоря, типы-массивы В некоторых объектно-ориентированных языках программирования не являются классами, считается, что все они наследуют от библиотечно- (например, в C++) объекты могут храниться как в куче (в динамической го класса System.Array. Типы-массивы интересны тем, что, в отличие от памяти), так и в переменных: глобальных (в статической памяти) и ло- классов, определяемых программистом самостоятельно, они формируют- кальных (на стеке). Поэтому системы типов в таких языках содержат от- ся системой автоматически. То есть если мы имеем некоторый тип X, то дельные типы для самого объекта и для объектной ссылки (указателя на тип массива, состоящего из элементов типа X, нам уже объявлять не нуж- объект). но – об этом позаботится система выполнения. В среде .NET объекты и объектные ссылки хранятся раздельно, а именно: объекты хранятся в куче, а ссылки – в ячейках. Поэтому общая си- Массив ссылочного типа стема типов спроектирована таким образом, что один и тот же ссылочный тип может являться как типом объекта, так и типом объектной ссылки. Каждый объект в куче содержит информацию о своем типе. Поэтому ссылочные типы, представляющие объекты, называются самоописываю- щими (self-describing). Два самоописывающих типа являются встроенными – это System.Object (или просто object в текстовом представлении CIL) и System.String (или string). Тип System.Object является общим базовым Массив типа-значения классом, от которого непосредственно или транзитивно наследует любой другой класс. Тип System.String используется для представления строко- вых данных в формате Unicode. Основу самоописывающих типов составляют классы. Классы могут агрегировать значения других типов, а также наследоваться друг от друга Рис. 1.6. Особенности представления массивов (в .NET поддерживается только одиночное наследование). Классы могут содержать следующие элементы: Массивы бывают как одномерными (в этом случае они обрабатыва- • Поля (fields). ются особенно эффективно благодаря использованию специальных инст- Поля являются ячейками, в которых хранятся значения других рукций CIL), так и многомерными. Кроме того, система поддерживает типов. массивы, нижняя граница которых отлична от нуля.
Страницы
- « первая
- ‹ предыдущая
- …
- 12
- 13
- 14
- 15
- 16
- …
- следующая ›
- последняя »