Массивы объектов

При создании массива, состоящего из элементов ссылочного типа, память выде­ляется только под ссылки на элементы, а сами элементы необходимо разместить в хипе явным образом. В качестве примера создадим массив из объектов некото­рого класса Monster:

using System;

namespace ConsoleApplication1

{

class Monster {... }

class Class1

{

static void Main()

{

Random rnd = new Random();

const int n = 5;

Monster[] stado = new Monster[n]; // 1

for (int i = 0; i < n; ++i) // 2

{

stado[i] = new Monster(rnd.Next(1, 100),

rnd.Next(1, 200), "Crazy" + i.ToString());

}

foreach (Monster x in stado) x.Passport(); // 3

}

}

}

Результат работы программы:

Monster Crazy0 health = 18 ammo = 94

Monster Crazy1 health = 85 ammo = 75

Monster Crazy2 health = 13 ammo =6

Monster Crazy3 health = 51 ammo = 104

Monster Crazy4 health = 68 ammo = 114

В программе для получения случайных значений использован стандартный класс Random, который описан далее в этой главе (см. с. 148). В операторе 1 выде­ляется пять ячеек памяти под ссылки на экземпляры класса Monster?, и эти ссыл­ки заполняются значением null. В цикле 2 создаются пять объектов: операция new выделяет память в хипе необходимого для хранения полей объекта объема, а конструктор объекта заносит в эти поля соответствующие значения (выполня­ется версия конструктора с тремя параметрами). Цикл 3 демонстрирует удобство применения оператора foreach для работы с массивом.

Символы и строки

Обработка текстовой информации является, вероятно, одной из самых распро­страненных задач в современном программировании, и С# предоставляет для ее решения широкий набор средств: отдельные символы, массивы символов, изме­няемые и неизменяемые строки и регулярные выражения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: