int[][] network_nodes = new int[4][]; network_nodes[0] = new int[3]; network_nodes[1] = new int[7]; network_nodes[2] = new int[2]; network_nodes[3] = new int[5];
int i, j;
// Сфабриковать данные об использовании ЦП. for(i=0; i < network_nodes.Length; i++)
for(j=0; j < network_nodes[i].Length; j++) network_nodes[i][j] = i * j + 70;
Console.WriteLine("Общее количество узлов сети: " + network_nodes.Length + "\n");
for(i=0; i < network_nodes.Length; i++) {
for(j=0; j < network_nodes[i].Length; j++) {
Console.Write("Использование в узле сети " + i +
" ЦП " + j + ": ");
Console.Write(network_nodes[i][j] + "% ");
Console.WriteLine ;
}
При выполнении этой программы получается следующий результат.
Общее количество узлов
сети:
: 4
Использование
в
узле
0
ЦП
0
70%
Использование
в
узле
0
ЦП
1
70%
Использование
в
узле
0
ЦП
2
70%
Использование
в
узле
1
ЦП
0
70%
Использование
в
узле
1
ЦП
1
71%
Использование
в
узле
1
ЦП
2
72%
Использование
в
узле
1
ЦП
3
73%
Использование
в
узле
1
ЦП
4
74%
Использование
в
узле
1
ЦП
5
75%
Использование
в
узле
1
ЦП
6
76%
Использование
в
узле
2
ЦП
0:
: 70%
Использование
в
узле
2
ЦП
1:
: 72%
Использование
в
узле
3
ЦП
0:
: 70%
Использование
в
узле
3
ЦП
1:
: 73%
Использование
в
узле
3
ЦП
2:
: 76%
Использование
в
узле
3
ЦП
3:
: 79%
Использование
в
узле
3
ЦП
4:
: 82%
Обратите особое внимание на то, как свойствоLengthиспользуется в ступенчатом массивеnetwork_nodes.Напомним, что двумерный ступенчатый массив представляет собой массив массивов. Следовательно, когда используется выражение
network_nodes.Length
то в нем определяется число массивов, хранящихся в массивеnetwork_nodes(в данном случае — четыре массива). А для получения длины любого отдельного массива, составляющего ступенчатый массив, служит следующее выражение.
n.etwork_nodes [0] .Length
В данном случае это длина первого массива.
Неявно типизированные массивы
Как пояснялось в главе 3, в версии C# 3.0 появилась возможность объявлять неявно типизированные переменные с помощью ключевого словаvar.Это переменные, тип которых определяется компилятором, исходя из типа инициализирующего выражения. Следовательно, все неявно типизированные переменные должны быть непременно инициализированы. Используя тот же самый механизм, можно создать и неявно типизированный массив. Как правило, неявно типизированные массивы предназначены для применения в определенного рода вызовах, включающих в себя элементы языка LINQ, о котором речь пойдет в главе 19. А в большинстве остальных случаев используется "обычное" объявление массивов. Неявно типизированйые массивы рассматриваются здесь лишь ради полноты представления о возможностях языка С#.