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

UptoLike

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

107
такой процедуры может понадобиться анализкакой реальный тип массива
передан в процедуру.
Рисунок 24. Отношение наследования на классах-массивах
Рассмотрим пример подобной процедуры. Ранее для печати элементов
массива использовались различные процедуры PrintAr1, PrintAr2 и так далее, по
одной для каждого класса массива. Теперь приведем общую процедуру,
формальный аргумент которой будет принадлежать родителю всех классов-
массивов, что позволит передавать массив любого класса в качестве
фактического аргумента:
public void PrintAr(string name, Array A)
{
Console.WriteLine(name);
switch (A.Rank)
{
case 1:
for (int i = 0; i < A.GetLength(0); i++)
Console.Write("\t" + name + "[{0}]={1}", i, A.GetValue(i));
Console.WriteLine();
break;
case 2:
for (int i = 0; i < A.GetLength(0); i++)
{
for (int j = 0; j < A.GetLength(1); j++)
Console.Write("\t" + name + "[{0},{1}]={2}", i, j, A.GetValue(i, j));
Console.WriteLine();
}
break;