Основы языка C# 2005. Евсеева О.Н - 102 стр.

UptoLike

Составители: 

106
};
В этом случае элементы массива получат при инициализации нулевые
значения. Реальную инициализацию нужно будет выполнять программным
путем. Стоит заметить, что в конструкторе верхнего уровня константу 3 можно
опустить и писать просто new int[ ][ ]. Вызов этого конструктора можно вообще
опуститьон будет подразумеваться:
int[ ][ ] jagger2 =
{
new int[4],
new int[2],
new int[3]
};
А вот конструкторы нижнего уровня необходимы. Еще одно важное
замечаниединамические массивы возможны и здесь. В общем случае,
границы на любом уровне могут быть выражениями, зависящими от
переменных. Более того, допустимо, чтобы массивы на нижнем уровне были
многомерными.
7.5. Класс Array
Нельзя понять многие детали работы с массивами в C#, если не знать
устройство класса Array из библиотеки FCL, потомками которого являются все
классы-массивы.
Рассмотрим следующие объявления:
//Класс Array
int[ ] ar1 = new int[5];
double[ ] ar2 ={5.5, 6.6, 7.7};
int[ , ] ar3 = new Int32[3,4];
У всех классов, являющихся массивами, много общего, поскольку все они
являются потомками класса System.Array. Класс System.Array наследует ряд
интерфейсов: ICloneable, IList, ICollection, IEnumerable, и обязан реализовать все
их методы и свойства. Помимо наследования свойств и методов класса Object и
вышеперечисленных интерфейсов, класс Array имеет довольно большое число
собственных методов и свойств. Взгляните, как выглядит отношение
наследования на семействе классов, определяющих массивы (рис. 24).
Благодаря такому мощному родителю (класс Object), над массивами
определены самые разнообразные операциикопирование, поиск, обращение,
сортировка, получение различных характеристик. Массивы можно
рассматривать как коллекции и устраивать циклы ForEach для перебора всех
элементов. Важно и то, что когда у семейства классов есть общий родитель, то
можно иметь общие процедуры обработки различных потомков этого родителя.
Для общих процедур работы с массивами характерно, что один или несколько
формальных аргументов имеют родительский тип Array. Естественно, внутри