187
Члены.типа
в общеязыковую спецификацию CLS, поскольку не все языки программирования
ее поддерживают. Подробнее о перегруженных операторах см. главу 8.
Оператор преобразования
— метод, задающий порядок явного или неявного
преобразования объекта из одного типа в другой.
Операторы преобразования
не входят в спецификацию CLS по той же причине, что и перегруженные опе-
раторы. Подробнее об операторах преобразования см. главу 8.
Свойство
представляет собой механизм, позволяющий применить простой
синтаксис (напоминающий обращение к полям)
для установки или получения
части логического состояния типа или объекта с контролем логической целост-
ности этого состояния. Свойства бывают необобщенными (распространенный
случай) и обобщенными (встречаются редко, в основном в классах коллекций).
Подробнее о свойствах см. главу 10.
Событие
— механизм статических событий позволяет типу отправлять уве-
домления статическим или экземплярным методам. Механизм экземплярных
(нестатических) событий позволяет объекту посылать уведомление статиче-
скому или экземплярному методу. События обычно инициируются в ответ на
изменение
состояния типа или объекта, порождающего событие. Событие со-
стоит из двух методов, позволяющих статическим или экземплярным методам
регистрировать и отменять регистрацию (подписку) на событие. Помимо этих
двух методов, в событиях обычно используется
поле-делегат для управления
набором зарегистрированных методов. Подробнее о событиях см. главу 11.
Тип
позволяет определять другие вложенные в него типы. Обычно этот под-
ход применяется для разбиения большого, сложного типа на небольшие блоки
с целью упростить его реализацию.
Еще раз подчеркну, что цель данной главы состоит не в подробном описании
различных членов, а в изложении общих принципов и объяснении сходных аспек-
тов этих членов.
Независимо от используемого языка программирования, компилятор
должен об-
работать исходный код и создать метаданные и IL-код для всех членов типа. Формат
метаданных един и не зависит от выбранного языка программирования — именно
поэтому CLR называют
общеязыковой
исполняющей средой. Метаданные — это
стандартная информация, которую предоставляют и
используют все языки, по-
зволяя коду на одном языке программирования без проблем обращаться к коду на
совершенно другом языке.
Стандартный формат метаданных также используется средой CLR для опре-
деления порядка поведения констант, полей, конструкторов, методов, свойств
и событий во время выполнения.
Короче говоря, метаданные — это ключ ко всей
платформе разработки Microsoft .NET Framework; они обеспечивают интеграцию
языков, типов и объектов.
В следующем примере на C# показано определение типа со всеми возможными
членами. Этот код успешно компилируется (не без предупреждений), но
пользы от