Читаем C# 4.0 полное руководство - 2011 полностью

Console.Write(b + " ");

Console.WriteLine ();

}

}

Вот к какому результату приводит выполнение этой программы.

4 3 6 4 7 9

True True False True

В данном примере массив, состоящий из возвращаемых по очереди объектов, передается конструктору классаMyClass.Тип этого массива указывает в качестве аргумента типа в конструкторе классаMyClass.

МетодGetEnumerator() оперирует данными обобщенного типаТи возвращает перечислитель типаIEnumerator.Следовательно, итератор, определенный в классеMyClass,способен перечислять данные любого типа.

Инициализаторы коллекций

В С# имеется специальное средство, называемоеинициализатором коллекциии упрощающее инициализацию некоторых коллекций. Вместо того чтобы явно вызывать методAdd (), при создании коллекции можно указать список инициализаторов. После этого компилятор организует автоматические вызовы методаAdd (), используя значения из этого списка. Синтаксис в данном случае ничем не отличается от инициализации массива. Обратимся к следующему примеру, в котором создается коллекция типаList,инициализируемая символами С, А, Е, В, D и F.

List 1st = new List() { 'С1,    'А1,    'Е1,    'В1,    1D1,    1F1 };

После выполнения этого оператора значение свойства1st. Countбудет равно 6, поскольку именно таково число инициализаторов. А после выполнения следующего цикла foreach:

foreach(ch in 1st)

Console.Write(ch + " ");

получится такой результат:

С A E В D F

Для инициализации коллекции типаLinkedListcTKey, TValue>,в которой хранятся пары "ключ-значение", инициализаторы приходится предоставлять парами, как показано ниже.

SortedListcint, string> 1st =

new SortedListcint, string>() { {1, "один11}, {2, "два" },    {3,    "три"}    };

Компилятор передаст каждую группу значений в качестве аргументов методуAdd (). Следовательно, первая пара инициализаторов преобразуется компилятором в вызовAdd(1, "один").

Компилятор вызывает методAdd() автоматически для ввода инициализаторов в коллекцию, и поэтому инициализаторы коллекций можно использовать только в коллекциях, поддерживающих открытую реализацию методаAdd (). Это означает, что инициализаторы коллекций нельзя использовать в коллекциях типаStack, Stack, QueueилиQueue,поскольку в них методAdd() не поддерживается. Их нельзя применять также в тех коллекциях типаLinkedList,где методAdd() предоставляется как результат явной реализации соответствующего интерфейса.

ГЛАВА 26 Сетевые средства подключения к Интернету

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

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

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных