Герберт Шилдт - C# 4.0: полное руководство

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Герберт Шилдт - C# 4.0: полное руководство краткое содержание

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

event делегат_события имя_ события {

add {

// Код добавления события в цепочку событий.

}

remove {

// Код удаления события из цепочки событий.

}

}

В эту форму входят два аксессора событий: addи remove. Аксессор addвызывается, когда обработчик событий добавляется в цепочку событий с помощью оператора +=. В то же время аксессор removeвызывается, когда обработчик событий удаляется из цепочки событий с помощью оператора -=.

Когда вызывается аксессор addили remove, он принимает в качестве параметра добавляемый или удаляемый обработчик. Как и в других разновидностях аксессоров, этот неявный параметр называется value. Реализовав аксессоры addили remove, можно организовать специальную схему хранения обработчиков событий. Например, обработчики событий можно хранить в массиве, стеке или очереди.

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

// Создать специальные средства для управления списками

// вызова обработчиков событий.

using System;

// Объявить тип делегата для события.

delegate void MyEventHandler();

// Объявить класс для хранения максимум трех событий,

class MyEvent {

MyEventHandler[] evnt = new MyEventHandler[3];

public event MyEventHandler SomeEvent {

// Добавить событие в список,

add {

int i;

for(i=0; i < 3; i++)

if(evnt[i] == null) {

evnt[i] = value;

break;

}

if (i == 3) Console.WriteLine("Список событий заполнен.");

}

// Удалить событие из списка,

remove {

int i;

for(i=0; i < 3; i++)

if(evnt[i] == value) {

evnt[i] = null;

break;

}

if (i == 3) Console.WriteLine("Обработчик событий не найден.");

}

}

// Этот метод вызывается для запуска событий,

public void OnSomeEvent() {

for(int i=0; i < 3; i++)

if(evnt[i] != null) evnt[i]();

}

}

// Создать ряд классов, использующих делегат MyEventHandler.

class W {

public void Whandler() {

Console.WriteLine("Событие получено объектом W");

}

}

class X {

public void Xhandler() {

Console.WriteLine("Событие получено объектом X");

}

}

class Y {

public void Yhandler() {

Console.WriteLine("Событие получено объектом Y");

}

}

class Z {

public void Zhandler() {

Console.WriteLine("Событие получено объектом Z");

}

}

class EventDemo5 {

static void Main() {

MyEvent evt = new MyEvent();

W wOb = new W();

X xOb = new X();

Y yOb = new Y();

Z zOb = new Z();

// Добавить обработчики в цепочку событий.

Console.WriteLine("Добавление событий.");

evt.SomeEvent += wOb.Whandler;

evt.SomeEvent += xOb.Xhandler;

evt.SomeEvent += yOb.Yhandler;

// Сохранить нельзя - список заполнен,

evt.SomeEvent += zOb.Zhandler;

Console.WriteLine();

// Запустить события,

evt.OnSomeEvent();

Console.WriteLine();

// Удалить обработчик.

Console.WriteLine("Удаление обработчика xOb.Xhandler.");

evt.SomeEvent -= xOb.Xhandler;

evt.OnSomeEvent();

Console.WriteLine();

// Попробовать удалить обработчик еще раз.

Console.WriteLine("Попытка удалить обработчик " +

"xOb.Xhandler еще раз.");

evt.SomeEvent -= xOb.Xhandler;

evt.OnSomeEvent();

Console.WriteLine();

//А теперь добавить обработчик Zhandler.

Console.WriteLine("Добавление обработчика zOb.Zhandler.");

evt.SomeEvent += zOb.Zhandler;

evt.OnSomeEvent();

}

}

Ниже приведен результат выполнения этой программы

Добавление событий.

Список событий заполнен.

Событие получено объектом W

Событие получено объектом X

Событие получено объектом Y

Удаление обработчика xOb.Xhandler.

Событие получено объектом W

Событие получено объектом Y

Попытка удалить обработчик xOb.Xhandler еще раз.

Обработчик событий не найден.

Событие получено объектом W

Событие получено объектом Y

Добавление обработчика zOb.Zhandler.

Событие получено объектом W

Событие получено объектом X

Событие получено объектом Y

Рассмотрим данную программу более подробно. Сначала в ней определяется делегат обработчиков событий MyEventHandler. Затем объявляется класс MyEvent. В самом его начале определяется массив обработчиков событий evnt, состоящий из трех элементов.

MyEventHandler[] evnt = new MyEventHandler[3];

Этот массив служит для хранения обработчиков событий, добавляемых в цепочку событий. По умолчанию элементы массива evntинициализируются пустым значением ( null).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x