Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 111

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 105 106 107 108 109 110 < 111 > 112 113 114 115 116 117 .. 404 >> Следующая


.' ¦ t:'- U l'j.C-51 i.jj р ¦ C!s - fj Lгг П ‘ Gi L 3 LrU L !Ь»j 11 Qi JIL-Ш ¦tiie.

CnjAtp tyj-: vaJ I' '¦ • mki ijif Пп1гм1 atijpct: i>ad ii::.. it:

i;ii! II/IU J.'w ,i fe.jt'el ¦ 11* t г. о ilri'uij u lie с С ian r Hjiic He irrf rc

НЧл Cli I I i -Ml , uilik-H In Ri*г «чу ой 1 1ч С t i&ii * IS'.i Huu

fllUM;\) Си J I > I. I 11> . luir.tili ill i. j i -1 t'. _

Uoirdri? \\.\-. Jiuijji ГЩ1,

К-:; И : ,-i t-iiil ¦ is ¦ ЧН-

^rv.ili. ,-vi rJPJIt- t ii ILcl J.g.n rj! i'i^h-.: sJiji'ct ¦ ..>1 и._с jL-

N¦¦¦1.1 t Jit 1 tsiJi .l- i u Ji ,| i: ч i. iiridciit s. lj Arr.fjLj it с ? 11." с h i.p-м . Ii*, i:: i ¦ ll.n/J- i-

i'-hl I I'hkil .I'll l-i n 'thjir i i.o fit’f-t'/Li-. V i-j J b;qt (/. u. i-- I'n’j

>11' Is- ¦ jj']j i t и и L Ь: С t iun runLn In: ;; nhj’cCC" -

ip.'< v Ji-y 11 i ¦ l)i- (Ш i i*i!

is, i. Lifd mi i i u ¦ j -

luis,> k П-1riii|i*i i.i? As\M 11i Avjm yJt i is t .=

Г!лц Imi Jjvoh 14;4.

N’¦11 ^ |д ill P11 :< -

Гhv .«din»'I. tAJieil Dr ii^rtru 3™ .ir isHstfijr t.

Tlii! .min-tl is c..iJ!i»r| Jftii fair .

Iя I’l'! 'J Л Jnj/ til nun I. illlin
232 ' __________Глава 11

На самом деле это не является реальной емкостью семейства, поскольку емкость автоматически удваивается, если число элементов превышает заданное значение,

В случае массивов, состоящих из элементов ссылочных типов (как используемые объекты класса Animal и производных от него классов), простая инициализация массива с указанием размера не влечет за собой инициализации его элементов. Для того чтобы воспользоваться некоторым вхождением, его также необходимо инициализировать, откуда следует, что элементам массива должны быть присвоены инициализированные объекты:

Cow myCowl = new Cow('Deirdre'); animalArray[0] = myCowli animalArray(1] = new Chicken('Xen');

В этом коде процедура выполняется двумя способами: один раз — путем присваивания уже существующего объекта класса cow и второй раз — через создание нового объекта класса Chicken. Основное отличие между этими способами заключается п том, что н первом случае мы получаем ссылку на объект, находящийся в массиве; этот факт мы используем в нашей программе позднее.

В семействе ArrayList не существует никаких элементов, даже ссылающихся на null. Это означает, что мы лишены возможности присваивать новые объекты аналогичным образом, с использованием индексов. Вместо этого для включения новых объектов необходимо воспользоваться методом Add о объекта ArrayList:

Cow myCow2 = new Cow( 'Hayley') ; animalArrayList,Add(myCow2); animalArrayList,Add(new Chicken('Roy'));

Несколько изменив синтаксис, можно точно таким же образом добавлять в семейство новые или уже существующие объекты.

После того как элементы добавлены, появляется возможность перезаписать их, используя синтаксис, идентичный применяемому для работы с массивами. Например:

animalArrayList10J * new Cow(*Alma'l j

Правда, в настоящем примере мы таких действий предпринимать не будем.

В главе 5 вы познакомились с тем, как использовать конструкцию foreach для прохода по элементам массива. Это оказывается возможным, поскольку класс System. Array реализует интерфейс iEnumerable, а единственный метод этого интерфейса, GetEnumerator о, позволяет проходить в цикле по всем элементам семейства. Более подробно мы будем рассматривать этот вопрос позже. В нашей программе мы выводим информацию обо всех объектах класса Animal, содержащихся в массиве:

foreach (Animal myAnimal in animalArray)

{

Console.WriteLine ('New (0> object added to Array collection, ' +

'Name = {1}', myAnimal.ToString(), myAnimal .Naine);

)

Объект ArrayList также поддерживает интерфейс IEnumerable и, следовательно, может использоваться вместе с конструкцией foreach:

foreach (Animal myAnimal in animalArrayList)

( •

Console.WriteLine('New (0) object added to ArrayList collection," +

' Name = (!>', myAnimal.ToString(), myAnimal.Name);

>
Дополнительные сведения о классах

233

Далее для вывода на экран числа элементов, содержащихся в массиве, мы используем свойство массива Length:

Console.WriteLine('Array collection contains (0) objects.', animalArray.Length);

Мы можем достигнуть того же самого результата и для семейства ArrayList, с тем лишь отличием, что придется воспользоваться свойством Count, которое является составной частью интерфейса ICollection:

Console.WriteLine('ArrayList collection contains (0} objects.*, animalArrayList.Count);

Семейства — независимо от того, являются ли они массивами или более сложными семействами — оказываются не столь полезными, если в них не предусмотрено обеспечение доступа к принадлежащим им элементам. Простые массивы строго типизированы, т. е. они обеспечивают непосредственный доступ к типу своих элементов. Это означает, что можно напрямую вызывать метод их элемента:

animalArray[0].Feed();

Поскольку массив имеет абстрактный тип Animal, то нельзя непосредственно вызывать методы, предоставляемые производными классами. Вместо этого следует воспользоваться приведением типа:
Предыдущая << 1 .. 105 106 107 108 109 110 < 111 > 112 113 114 115 116 117 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.