Модификаторы доступа для класса и членов класса
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой
class- modifier constant-modifier: field-modifier: method-modifier property-modifier accessor-modifier: event-modifier: indexer-modifier: operator-modifier
new public protected internal private abstract sealed static   new public protected internal private   new public protected internal private static readonly volatile new public protected internal private static virtual sealed override abstract extern new public protected internal private static virtual sealed override abstract extern protected internal private protected internal internal protected new public protected internal private static virtual sealed override abstract extern new public protected internal private virtual sealed override abstract extern   public static extern  

модификатор volatile используется для поля, обращение к которому выполняется через несколько потоков

 

instance constructor-modifier: static-constructor-modifiers:
public protected internal private extern externopt static static externopt  

 

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

Члены типа класса разделены на следующие категории (спецификация)

· Константы, представляющие постоянные значения, связанные с классом.

· Поля, являющиеся переменными класса.

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

· Свойства, определяющие именованные характеристики и действия, связанные с чтением и записью данных характеристик.

· События, определяющие уведомления, которые могут быть сгенерированы классом.

· Индексаторы, которые обеспечивают индексацию экземпляров класса аналогично (синтаксически) индексации массивов.

· Операторы, определяющие операторы выражений, которые могут быть применены к экземплярам класса.

· Конструкторы экземпляров, реализующие действия, требуемые для инициализации экземпляров класса.

· Деструкторы, реализующие действия, выполняемые до отмены экземпляров класса без возможности восстановления.

· Статические конструкторы, реализующие действия, требуемые для инициализации самого класса.

· Типы, представляющие локальные типы класса.

Все члены, которые могут содержать исполняемый код, считаются членами функций типа класса. Членами функций типа класса являются методы, свойства, события, индексаторы, операторы, конструкторы экземпляров, деструкторы и статические конструкторы данного типа класса.

Конструкторы экземпляров, деструкторы и статические конструкторы должны иметь одинаковые имена с именами непосредственного заключающего класса. Все другие члены должны иметь имена, отличающиеся от имен непосредственного заключающего класса.

Сигнатура конструктора экземпляра должна отличаться от сигнатур всех других конструкторов экземпляров, объявленных в том же классе, а два конструктора экземпляра, объявленных в одном классе, не могут иметь сигнатуры, отличающиеся только словами ref и out.

 

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

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

Член функции экземпляра (метод, свойство, индексатор, конструктор экземпляра или деструктор) работает на заданном экземпляре класса, и данный экземпляр может быть вызван в качестве this.\

Класс может содержать объявления следующих членов:

class-member: Члены класса declaration
constant Константа   attributesopt constant-modifiersopt const type constant-declarators ;
field Поле static and instance fields attributesopt field-modifiersopt type variable-declarators ;    атрибутынеоб модификаторы_полянеоб тип деклараторы_переменных ;
method Метод method-header: attributesopt method-modifiersopt partialo pt return-type member-name type-parameter-listopt                    ( formal-parameter-listopt ) type-parameter-constraints-clausesopt public static void OpTest<T>(T s, T t)
property Свойство property-declaration: attributesopt property-modifiersopt type member-name { accessor-declarations } get-accessor-declaration: attributesopt accessor-modifieropt    get accessor-body set-accessor-declaration: attributesopt accessor-modifieropt set accessor-body
event Событие attributesopt event-modifiersopt event type variable-declarators ; public event EventHandler Click;
indexer Индексатор indexer-declaration: attributesopt indexer-modifiersopt indexer-declarator { accessor-declarations } indexer-declarator: type this [ formal-parameter-list ] type interface-type . this [ formal-parameter-list ]
operator Операторы attributesopt operator-modifiers operator-declarator operator-body
constructor Конструктор экземпляра attributesopt constructor-modifiersopt constructor-declarator constructor-body
destructor деструктор attributesopt externopt ~ identifier ( ) destructor-body
static-constructor Конструктор типа static-constructor-declaration: attributesopt static-constructor-modifiers identifier ( ) static-constructor-body
type типы  

 

 

 

Конструкторы экземпляров .

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

constructor-declaration:
attributesopt constructor-modifiersopt constructor-declarator constructor-body

объявление_конструктора:
атрибутынеобязательно модификаторы_конструкторанеобязательно декларатор_конструктора тело_конструктора

модификатор_конструктора:
public
protected
internal
private
extern

декларатор_конструктора:
идентификатор ( список_формальных_параметровнеобязательно ) инициализатор_конструкторанеобязательно

инициализатор_конструктора:
: base ( список_аргументовнеобязательно )
: this ( список_аргументовнеобязательно )

тело_конструктора:
блок
;

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

 

Необязательный список формальных параметров конструктора экземпляров подчиняется тем же правилам, что и список формальных параметров метода. Список формальных параметров определяет подпись конструктора экземпляров и управляет процессом, посредством которого разрешение перегрузки выбирает отдельный конструктор экземпляров в вызове.

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

Необязательный инициализатор конструктора указывает другой конструктор экземпляров для вызова перед выполнением операторов, заданных в теле конструктора этого конструктора экземпляров.

Конструкторы экземпляров не наследуются.

Если класс не содержит объявления конструкторов экземпляров, автоматически предоставляется конструктор экземпляров по умолчанию.













Дата: 2019-03-05, просмотров: 169.