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

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 44 45 46 47 48 49 < 50 > 51 52 53 54 55 56 .. 404 >> Следующая


('Robert Barwell', 'Mike Parry', 'Jereny Beacock'};
96 ______Глава 5

Console.WriteLine('Here are (0} of ny friends:*, friendNamea.Length);

fore _vi 1 lng friendName in friendNames)

, .Conaole.WriteLine(friendName)

Ш.) ^¦

)

Выходной поток этой программы будет абсолютно таким же, как и в предыдущем примере.

Основное отлнчие этого метода от обычного цикла for заключается в том, что он позволяет использовать содержимое массива в режиме “только чтение", т, е. отсутствует возможность изменять значения элементов массива. Например, написать такую программу нельзя:

foreach (string friendName in friendNames)

<

friendName “ 'Rupert the beax'j

>

При попытке откомпилировать этот код будет выдано сообщение об ошибке.

Многомерные массивы

Прочитав заглавие этого раздела, вы, возможно, подумаете, что мы собираемся обсуждать какое-то научно-фаитастнческое приложение к языку С#. На самом же деле многомерный массив — это объект, в котором для осуществления доступа к его элементам используется несколько индексов.

В качестве примера представим себе случай, когда требуется отразить высоту возвышенности по измеряемым точкам на местности. Мы можем определить такие точки двумя координатами х и у и использовать эти координаты в качестве индексов так, чтобы в массиве с названием hillHeight хранилась высота холма, соответствующая точке с данной парой координат. Для этого потребуется использовать многомерный массив.

Двумерный массив такого вида объявляется следующим образом:

<блзовиЙТка> |,) <икя>;

Описания массивов с большим числом размерностей требуют больше запятых. Например:

<базоаийПа& {,,,] <иия>; -

Так объявляется четырехмерный массив.

Для присваивания значений используется аналогичный синтаксис, причем размерности отделяются одна от другой запятыми. Для того чтобы объявить и инициализировать обсуждавшийся выше двумерный массив hillHeight с базовым типом double, размерностью х, равной 3, и размерностью у, равной 4, необходима следующая строка:

doublet hillHeight ¦ new double[3,4] >

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

double!,] hillHeigfit » new {(1, 2, 3, 4), {2. 3. 4, 5}, {3, 4, 5, 6));

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

97

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

hillHeight[3,1]

ю выполнять действия так же, как н над другими

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

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

doublet,] hillHeight =» ({1. 2. 3, 4), 12, 3, 4, 5>, [3, 4, 5, 6Н) foreach (double height in hillHeight) t .

Coneolo.writeL.ine(*{0}', height)]

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

hillHeight[0,0] hillHeight[0,1] hillHeight[0,2] hillHeight[0,3] hillHeight[l,0] hillHeight[1,1] hillHeight[1,2]

H Т. Д.

Массивы массивов

Многомерные массивы, обсуждавшиеся в предшествующем разделе, обычно называются прямоугольными, поскольку у них каждая “строка” имеет один н тот же размер. Если использовать иаш пример, то координата у может изменяться от 0 до 2 для любой координаты х.

Однако существует возможность использовать ступенчатые (jagged) массивы, у которых “строки” могут быть неодинакового размера. Для этого требуется массив, каждым элементом которого также является массив. При желании можно использовать массивы массивов массивов и даже более сложные конструкции. Однако это оказывается возможным только в том случае, если все массивы имеют один н тот же базовый тип.

Синтаксис, применяемый для объявления массивов массивов, подразумевает использование в объявлении массива нескольких пар квадратных скобок, например:

int U U jeasedlntArreyj ИЯ

Теперь над этим элементом мoж^ элементами.

Это выражение позволяет паи женного массива в соответствии значение равняется 4). Запомнит относится к вложенному массиву

ЬШНвкдЬЦО.О] hKHelghl(0,1] hlllHetght[0,2] NIIHei0M[O,3]
1 2 3 4

hHIHetghtJI.O] hilHei0hqi,1] WIHolghqU] hHlHetght[1,3]
2 3 4 5

haiHe*gM(2,0] hllHolght&l) мвныдицгд WHeigh42,31
3 4 5 6
98 ______ Глава 5

К сожалению, инициализация подобных массивов оказывается не таким простым делом, как инициализация многомерных массивов. Так, например, мы не имеем возможности использовать вслед за этим объявлением следующую запись;
Предыдущая << 1 .. 44 45 46 47 48 49 < 50 > 51 52 53 54 55 56 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

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

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

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

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