Главная arrow Язык программирования C# arrow C# Полное руководство Герберт Шилдт arrow Инициализация массива C# Полное руководство Герберт Шилдт

Инициализация массива C# Полное руководство Герберт Шилдт

В приведенной выше программе первоначальные значения были заданы для элемен-тов массива nums вручную в десяти отдельных операторах присваивания. Конечно, такая инициализация массива совершенно правильна, но то же самое можно сделать намного проще. Ведь массивы могут инициализироваться, когда они создаются. Ниже приведена общая форма инициализации одномерного массива.
   тип [ ] имя_массива = {vail, val2, val3, ..., valN};
где vall-valN обозначают первоначальные значения, которые присваиваются по очереди, слева направо и по порядку индексирования. Для хранения инициализаторов массива в C# автоматически распределяется достаточный объем памяти. А необходимость пользоваться оператором new явным образом отпадает сама собой. В качестве примера ниже приведен улучшенный вариант программы, вычисляющей среднее арифметическое.

// Вычислить среднее арифметическое ряда значений.

using System;

class Average {
   static void Main() {
      int [ ] nums = { 99, 10, 100, 18, 78, 23, 63, 9, 87, 49 };
      int avg = 0;

      for(int i=0; i < 10; i++)
         avg = avg + nums [ i ] ;
      avg = avg / 10;

      Console.WriteLine("Среднее: " + avg);
   }
}

Любопытно, что при инициализации массива можно также воспользоваться оператором new, хотя особой надобности в этом нет. Например, приведенный ниже фрагмент кода считается верным, но избыточным для инициализации массива nums в упомянутой выше программе.
   int [ ] nums = new int [ ] { 99, 10, 100, 18, 78, 23, 63, 9, 87, 49 };
Несмотря на свою избыточность, форма инициализации массива с оператором new оказывается полезной в том случае, если новый массив присваивается уже существующей переменной ссылки на массив. Например:
   int [ ] nums;
   nums = new int [ ] { 99, 10, 100, 18, 78, 23, 63, 9, 87, 49 };

В данном случае переменная nums объявляется в первом операторе и инициализируется во втором.
И последнее замечание при инициализации массива его размер можно указывать явным образом, но этот размер должен совпадать с числом инициализаторов. В качестве примера ниже приведен еще один способ инициализации массива nums.
   int [ ] nums = new int[10] { 99, 10, 100, 18, 78, 23, 63, 9, 87, 49 };
В этом объявлении размер массива nums задается равным 10 явно.