Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp Language Specification.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
4.75 Mб
Скачать

3.4Члены

Пространства имен и типы содержат члены. Члены сущности обычно доступны посредством использования проверенного имени, начинающегося со ссылки на сущность, затем следует маркер «.», а затем имя члена.

Члены типа либо объявляются в объявлении типа, либо наследуются из базового класса типа. Когда тип наследуется из базового класса, все члены базового класса, исключая конструкторы экземпляров, деструкторы и статические конструкторы, становятся членами производного типа. Объявленная доступность члена базового класса не контролирует наследование члена, наследование распространяется на каждый член, не являющийся конструктором экземпляров, статическим конструктором или деструктором. Однако наследованный член может быть недоступен в производном типе, либо по причине объявленной доступности (§3.5.1), либо по причине того, что он скрыт объявлением в самом типе (§3.7.1.2).

3.4.1Члены пространства имен

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

Пространства имен и типы, объявленные в рамках пространства имен, являются членами данного пространства имен. Это непосредственно соответствует именам, объявленным в области объявления пространства имен.

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

3.4.2Члены структуры

Членами структуры являются члены, объявленные в структуре, и члены, унаследованные от непосредственного базового класса структуры System.ValueType и косвенного базового класса object.

Члены простого типа непосредственно соответствуют членам типа структуры с псевдонимами по простому типу.

  • Члены sbyte являются членами структуры System.SByte.

  • Члены byte являются членами структуры System.Byte.

  • Члены short являются членами структуры System.Int16.

  • Члены ushort являются членами структуры System.UInt16.

  • Члены int являются членами структуры System.Int32.

  • Члены uint являются членами структуры System.UInt32.

  • Члены long являются членами структуры System.Int64.

  • Члены ulong являются членами структуры System.UInt64.

  • Члены char являются членами структуры System.Char.

  • Члены float являются членами структуры System.Single.

  • Члены double являются членами структуры System.Double.

  • Члены decimal являются членами структуры System.Decimal.

  • Члены bool являются членами структуры System.Boolean.

3.4.3Члены перечисления

Членами перечисления являются члены, объявленные в перечислении, и члены, унаследованные от непосредственного базового класса перечисления System.Enum и косвенных базовых классов System.ValueType и object.

3.4.4Члены класса

Членами класса являются члены, объявленные в классе, и члены, унаследованные от базового класса (исключая класс object, не имеющего базовый класс). Члены, унаследованные из базового класса, включают константы, поля, методы, свойства, события, индексаторы, операторы и типы базового класса, но не включают конструкторы экземпляров, деструкторы и статические конструкторы базового класса. Члены базового класса наследуются вне зависимости от их доступности.

Объявление класса может содержать объявления констант, полей, методов, свойств, событий, индексаторов, операторов, конструкторов экземпляров, деструкторов, статических конструкторов и типов.

Члены object и string непосредственно соответствуют членам типов класса, псевдонимами которых они являются.

  • Члены object являются членами структуры System.Object.

  • Члены string являются членами структуры System.String.

3.4.5Члены интерфейса

Членами интерфейса являются члены, объявленные в интерфейсе и во всех базовых интерфейсах данного интерфейса. Члены в классе object, строго говоря, не являются членами какого-либо интерфейса (§13.2). Тем не менее, члены в классе object доступны при поиске членов интерфейса любого типа (§7.4).

3.4.6Члены массива

Членами массива являются члены, унаследованные из класса System.Array.

3.4.7Члены делегата

Членами делегата являются члены, унаследованные из класса System.Delegate.

3.5Метод доступа к члену

Объявления членов позволяют осуществлять контроль доступа членов. Доступность члена устанавливается посредством объявленной доступности (§3.5.1) члена в сочетании с доступностью непосредственно содержащем типе, при его наличии.

Когда доступ к определенному члену разрешен, член является доступным. И наоборот, когда доступ к определенному члену запрещен, член является недоступным. Доступ к члену разрешен, когда текстовое положение, в котором происходит доступ, включено в домен доступности (§3.5.2) члена.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]