Свойства предоставляют удобный механизм доступа к полю класса (чтение поля и запись). Свойство представляет собой что-то среднее между полем и методом класса.
[модификатор доступа] [тип] [имя_свойства] { get { // тело аксессора для чтения из поля } set { // тело аксессора для записи в поле } }
Свойства
Если бы просто сделали поле year открытым и не использовали ни методы, ни свойство для доступа, мы могли бы записать в это поле любое значение, в том числе и некорректное, а так мы можем контролировать чтение и запись.
Свойства
События
Применения событий позволяет объектам реагировать на те или иные ситуации и выполнять необходимые ответные действия.
Событие может вызываться только в том классе, где оно объявлено
События и делегаты
Бывают ситуации, когда программисту требуется написать гибкий код, реагирующий на выполнение конкретных операций.
Например были созданы различные ЭУ (кнопки, поля и т.д.). Но разработчики не знали, как мы будем их использовать. ЭУ имеют точки взаимодействия , встроенные в код таким образом, чтобы они могли поддерживать связь с вашей программой. Эти точки взаимодействия называются событиями (events). События срабатывают всякий раз, когда пользователь выполняет определенные действия(нажимает на кнопку).
Программисты пишут код, который связывает эти события с другим кодом в разрабатываемой программе и должен выполняться при наступлении этих событий (нажатие кнопки).
Для выполнения этой задачи используются делегаты (delegates).
События и делегаты
Событие определяет тип уведомлений, которые могут предоставляться объектом, и делегат позволяет связать событие с тем кодом, которое должен исполняться при его наступлении.
Событие – это тип класса , который позволяет вашему классу или экземпляру класса уведомлять другой код о том, что происходит в пределах этого класса.
С помощью ключевого слова event объявляем событие AgeChange класса Event Hander. Event Hander представляет собой класс, который принадлежит библиотеки .NET Framework
Чтобы сгенерировать событие нужно вызвать как простой метод
Чтобы добавить свой объект в качестве получателя события , нужно выполнить операцию добавления к текущему значению нового экземпляра обработчика с помощью операции += Если нужно удалить обработчик события, то выполняется операция -= Наше событие является делегатом EvenHander, следовательно мы должны добавить экземпляр EvenHander. Передаем делегату метод AgeChange.