Скачиваний:
62
Добавлен:
24.03.2015
Размер:
165.38 Кб
Скачать

10.6. Статические классы

Как рекомендует Стандарт С# [2], классы, которые не предназначены для создания объектов и которые содержат только статические члены, нужно объявлять статическими. В .NET Framework такими классами являются System.Control и System.Environment. Перечислим основные особенности статистических классов.

В статических классах нет конструкторов экземпляров (объектов) и эти классы не могут служить базовыми классами при наследовании. (Наследование рассматривается в главе 13.) Статические классы могут использоваться только с операцией typeof и средствами доступа к членам класса. В частности, статический класс не может использоваться в качестве типа переменной и не может выступать в качестве типа параметра.

В заголовок объявления статического класса входит модификатор static. В отличие от других классов статический класс нельзя объявить с модификаторами sealed и abstract. Однако, так как статический класс не участвует в иерархиях наследования, именно свойства, присущие классам с этими модификаторами, присущи статическому классу.

В объявлении статического класса нельзя применять спецификатор базы. Кроме того, статический класс не может реализовывать интерфейсы. (Интерфейсам посвящена глава 14.) Статический класс имеет только один базовый класс System.Object.

Так как статический класс не может быть базовым, то для его членов запрещены модификаторы protected и protected internal. Для членов статического класса в качестве модификаторов доступа можно использовать только public и private.

Несмотря на наличие модификатора static в заголовке статического класса, все его члены, отличные от констант и вложенных типов (классов), должны быть объявлены с явно указанным модификатором static.

Статические классы удобно применять для логического объединения функционально близких методов.

Примеры статических классов приводить нет необходимости, так как многие классы этой главы включают только статические члены и каждый из этих классов может быть снабжен заголовком

static class имя_класса

В заключение отметим ещё раз, что класс нельзя объявить статическим, если в его объявлении присутствует хотя бы один нестатический член.

10

Соседние файлы в папке Lekc_C#