Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Дисциплины:
2017-11-27 | 154 |
5.00
из
|
Заказать работу |
|
|
Событие — это элемент класса, позволяющий ему посылать другим объектам уведомления об изменении своего состояния. При этом для объектов, являющихсянаблюдателями события, активизируются методы-обработчики этого события.Обработчики должны быть зарегистрированы в объекте-источнике события.Таким образом, механизм событий формализует на языковом уровне паттерн«наблюдатель», который рассматривался в предыдущем разделе.
Механизм событий можно также описать с помощью модели «публикация — подписка»: один класс, являющийся отправителем (sender) сообщения, публикует события, которые он может инициировать, а другие классы, являющиеся получателями(receivers) сообщения, подписываются на получение этих событий.
События построены на основе делегатов: с помощью делегатов вызываются методы-обработчики событий. Поэтому создание события в классе состоит из следующихчастей:
• описание делегата, задающего сигнатуру обработчиков событий;
• описание события;
• описание метода (методов), инициирующих событие.
Синтаксис события похож на синтаксис делегата:
[ атрибуты ] [ спецификаторы ] event тип имя_события
Длясобытийприменяютсяспецификаторы new, public, protected, internal, private, static, virtual, sealed, override, abstract и extern.
Тип события — это тип делегата, на котором основано событие. Пример описания делегата и соответствующего ему события:
public delegate void Del(object о); // объявлениеделегата
class A
{
public event Del Oops: // объявлениесобытия
}
Обработка событий выполняется в классах-получателях сообщения. Для этого в них описываются методы-обработчики событий, сигнатура которых соответствуеттипу делегата. Каждый объект (не класс!), желающий получать сообщение,должен зарегистрировать в объекте-отправителе этот метод.
|
Внутри класса, в котором описано событие, с ним можно обращаться, как с обычным полем, имеющим тип делегата: использовать операции отношения, присваиванияи т, д. Значение события по умолчанию — null.
33. Использование конструкции using (…)
Существует три способа использования murta, определенного в каком-либо Пространстве имен:
1. Использовать полностью квалифицированное имя. Например, в пространстве имен System.Runtime.Serialization.Formatters.Binary описан класс BinaryFormatter.Создание объекта этого' класса с помощью квалифицированного имени выглядиттак:
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf -
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
2. Использовать директиву using, c помощью которой импортируются все именаиз заданного пространства. В этом случае предыдущий пример примет вид
using System.Runtime.Serialization.Formatters.Binary:
BinaryFormatter bf = new BinaryFormatter();
!!!! Директира using должна располагаться вне,или внутри пространства имен, но до
любых описаний типов.
3. Использовать псевдоним типа. Это делается с помощью второй формы директивыusing:
using BinF fc =
System.Runtime.Serialization.Formatters.Binary.BiriaryFormatter;
BinFbf = newBinF();
Первый способ применяется при однократном использований имени типа файла «неглубоко» вложенных пространств имей, второй - в большинстве остальных случает, а третий можно рекомендовать при многократном использовании длинного имени типа.
В версию языка С# 2.0 введена возможность применять псевдоним пространства имен с помощью операции::,например:
using SI0 = System.10; // псевдоним пространства имен
using MI0 = MyLibrary.IO; // псевдоним пространства имен
Class Program
{
static void MainO {
SI0::Stream s = new MIO::EmptyStream(); // использованиепсевдонимов
}
}
Есть оператор using1 со следующим синтаксисом:
using (выделение_ресурса) оператор
Под ресурсом здесь понимается объект, который реализует интерфейс System.IDisposable, включающий метод Dispose. Код, использующий ресурс, вызовом этогометода сигнализирует о том, что ресурс больше не требуется. Если метод Disposeне был вызван, освобождение ресурса выполняется в процессе сборки мусора.Оператор using неявным образом вызывает метод Dispose в случае успешногосоздания и использования объекта.
|
using (Pen pen - new Pen(Color.Red))
{
g.DrawLine(pen, 0, 0. 200, 100);
g.DrawEllipse(pen, new Rectangle(50, 50, 100, 150));
}
|
|
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!