Характеристика класса | Описание |
---|---|
Изолированность | |
Наличие интерфейсов | |
Абстрактность или конкретность | |
Видимость | Каждый класс должен иметь атрибут видимости (visibility). По сути, этот атрибут указывает, доступен данный класс для использования внешними компоновочными блоками или он доступен для использования только внутри определяющего этот класс компоновочного блока (как, например, приватный класс справки) |
Тип структуры
Понятие структуры в CTS также формализовано. Если вы знаете C, вам будет приятно узнать, что эти пользовательские типы "выжили" и в мире .NET (хотя внутренне они ведут себя немного по-иному). Упрощенно говоря,
// Тип структуры C#.
struct Point {
// Структуры могут содержать поля.
public int xPos, yPos;
// Структуры могут содержать параметризованные конструкторы.
public Point (int x, int у) {xPos = x; yPos = y;}
// Структуры могут определять методы.
public void Display {
Console.WriteLine("({0}, {1})", xPos, yPos);
}
}
Тип интерфейса
// Тип интерфейса C#.
public interface IDraw {
void Draw ;
}
Сами по себе интерфейсы не очень полезны. Однако, когда класс или структура реализуют данный интерфейс своим собственным уникальным образом, вы можете запросить доступ к соответствующим функциональным возможностям, используя ссылку на интерфейс в полиморфной форме. Программирование на базе интерфейсов будет рассматриваться в главе 7.
Тип перечня
// Тип перечня C#.
public enum CharacterType {
Wizard = 100,
Fighter = 200,
Thief = 300
}
По умолчанию для каждого элемента выделяется блок памяти, соответствующий 32-битовому целому, но при необходимости это значение можно изменить (например, в случае программирования для устройств с малыми объемами памяти, таких как КПК). Спецификации CTS предполагают, что типы перечня должны "получаться" из общего базового класса, System.Enum. Из главы 3 вы узнаете, что этот базовый класс определяет ряд весьма полезных членов, которые позволяют программно извлекать, обрабатывать и преобразовывать соответствующие пары "имя-значение".
Тип делегата