Параметр по ссылке this

 

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

Фактически связь полей объекта с методами класса происходит через параметр this. Каждый метод класса может непосредственно обращаться к параметру this для работы с элементами текущего объекта. Поскольку значение this всегда соответствует текущему объекту (объекту, с которым в текущий момент работает программа), то методы класса будут работать с элементами текущего объекта.

Использование параметра thisприменяется во многих конструкторах для инициализации полей объектов. Многие авторы при описании конструкторов классов в качестве имен формальных параметров используют имена полей классов и для того чтобы различать поля классов и имена формальных параметров перед именами полей классов указывается параметр this.Например, наш конструктор treyg в этом случае необходимо было бы записать следующим образом:

public treyg(int a, int b, int c)

{

this.a = a; this.b = b; this.c = c;

}

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

Параметр thisнельзя использовать при обращении к статическим элементам класса, так как они принадлежат не конкретному объекту, а классу в целом.

В языке С# применяется еще один параметр по ссылке base, который используется для работы с базовым (родительским) объектом. Если Вы внимательно посмотрите исходный код файла Form1.Designer.cs,а именно метод void Dispose(bool disposing), то в последних строках кода этого метода обычно находится запись base.Dispose(disposing);, которая позволяет при удалении объекта из памяти удалять и родительский (базовый) объект.

 

События класса

 

Важной составной частью ООП является реализованный в классах механизм событий.С помощью этого механизма один объект (источник события) может сообщить другому объекту (получателю события) об изменении своего состояния.

Обычно механизм события используется в многопоточных процессах при синхронизации – упорядочения очередности работы этих потоков. Однако этот же механизм можно использовать в Windows-приложениях, в которых такие элементы, как кнопки, флажки, переключатели и т. п., выдают информацию о взаимодействии с ними пользователя. Например, все объекты-кнопки (класса Button) при щелчке мышью возбуждают событие OnClick. Но для одной кнопки это событие приведет, например, к вводу набранных значений, для другой выполнит некоторое преобразование значений (например, их сортировку), а для третьей откроет окно другой формы.

Каждый элемент управления, размещаемый на форме, имеет определенный набор событий, «пустые» обработчики которых можно получить с помощью окна свойств этого элемента. Однако разработчики программ могут разработать свои специальные обработчики событий. Для реализации механизма события – извещение клиентов некоторого класса о факте наступления события класс-источник события должен:

объявить событие как член класса (наряду с полями, методами, свойствами) — для объявления используется зарезервированное слово event;

передать клиентам класса (получателям события) в нужный момент информацию о наступившем событии, сопроводив ее необходимыми параметрами;

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

Две последних операции (обмен информацией с клиентами) обычно реализуются с помощью делегатов, которые мы будем рассматривать в следующих лекциях.

 








Дата добавления: 2018-11-25; просмотров: 200;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.