CTS (Common Type System)
Самое важное в CLR - типы, предоставляющие функциональность нашим приложениям и другим типам.
CTS - формальная спецификация, которая описывает спсоб определения и поведения типов.
Система общих типов может содержать нуль или более членов, вот некоторые:
- Поле
- Метод
- Свойство
- Событие
- ...
CTS также задаёт правила видимости типов и доступа к членам типа, а CLR обеспечивает выполнение правил видимости. Варианты ограничения доступа к членам типа.
- public - доступ из любого места в коде, а также из других программ и сборок
- private - видимость ограниена содержащим типом
- protected - такой член класса доступен из любого места в текущем или производном классе (производные классы могут располагаться в других сборках)
- internal - класс и член класса доступен из любого места кода в той же сборке, однако не доступен для других программ и сборок
- protected internal - такой класс или член класса доступен из текущей сборки и из производных классов
- private protected - такой член класса дсотупен из любого места из текущего или производного класса в той же сборке
! Система общих типов CTS определяет способ объявления, использования ии управления типами в среде CLR , а также явл. важной составляющей частью поддержки межъязыковой интеграции в среде выполнения
О функциях CTS:
- Формирование инфраструктуры, которая позволяет беспечивать межъязыковую интеграцию, безопасность типов и высокопроизводительность кода
- Предоставление ОО модели, поддерживающую полную реализацию многих ЯП
- Опр. правила, которых необходимо придерживаться в зяыке (для взаимод. объектов разных языков)
- Предоставление библиотеки, кот. сожержит типы-примитивы (Boolean, Byte, Char, int ...)
Все типы в .NET Framework делятся на ССЫЛОЧНЫЕ и ЗНАЧИМЫЕ
- Значимые типы - хранятся в стеке, имеют определённый размер
- Ссылочные типы - хранятся в куче. В стеке хранится ссылка на объекты в этой куче. (Куча - область памяти, в которой размещаются управляемые объекты и работает сборщик мусора)
Типы платформы .NET:
- Классы
- Структуры
- Перечисления
- Интерфейсы
- Делегаты
Определения типов
- все определённые в типе атрибуты
- доступность(видимость) типа
- имя типа
- базовый тип данного типа
- все интерфейсы, реализованные этим типом
- определение каждого члена типа
Члены типа:
- Поля
- Методы
- свойства
- Конструкторы
- События
- Вложенные типы
Характеристика членов типа:
(abstract, virtual, static, final ... )