Console.Write(b + " ");
Console.WriteLine ();
}
}
Вот к какому результату приводит выполнение этой программы.
4 3 6 4 7 9
True True False True
В данном примере массив, состоящий из возвращаемых по очереди объектов, передается конструктору классаMyClass.Тип этого массива указывает в качестве аргумента типа в конструкторе классаMyClass.
МетодGetEnumerator() оперирует данными обобщенного типаТи возвращает перечислитель типаIEnumerator
Инициализаторы коллекций
В С# имеется специальное средство, называемое
List
После выполнения этого оператора значение свойства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
ГЛАВА 26 Сетевые средства подключения к Интернету