Массив представляет набор однотипных переменных. Объявление массива похоже на объявление переменной за тем исключением, что после указания типа ставятся квадратные скобки:
тип_переменной[] название_массива;
Например, определим массив целых чисел:
int[] numbers;
После определения переменной массива мы можем присвоить ей определенное значение:
int[] nums = new int[4];
Здесь вначале мы объявили массив nums, который будет хранить данные типа int. Далее используя операцию new, мы выделили память для 4 элементов массива: new int[4]. Число 4 еще называется длиной массива. При таком определении все элементы получают значение по умолчанию, которое предусмотренно для их типа. Для типа int значение по умолчанию - 0.
Также мы сразу можем указать значения для этих элементов:
int[] nums5 = { 1, 2, 3, 5 };
Для обращения к элементам массива используются индексы. Индекс представляет номер элемента в массиве, при этом нумерация начинается с нуля, поэтому индекс первого элемента будет равен 0. А чтобы обратиться к четвертому элементу в массиве, нам надо использовать индекс 3, к примеру: nums[3]. Используем индексы для получения и установки значений элементов массива:
int[] nums = new int[4];
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 5;
И так как у нас массив определен только для 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5;. Если мы так попытаемся сделать, то мы получим исключение IndexOutOfRangeException.
Массивы бывают многомерными. В предыдущих примерах мы создавали одномерные массивы, а теперь также создадим двухмерный:
int[] nums1 = new int[] { 0, 1, 2, 3, 4, 5 };
int[,] nums2 = { { 0, 1, 2 }, { 3, 4, 5 } };
Индексатор позволяет использовать класс как массив, если говорить коротким и нонятным языком. Например у нас есть class MyArr {
int[] arr;
public MyArr(int Size)
{
arr = new int[Size];
// логика иммитации заполнения массива
}
// Создаем простейший индексатор
public int this[int index]
{
set
{
arr[index] = value;
}
get
{
return arr[index];
}
}
}
Этот кусочек кода позволяет использовать класс как индексатор массива, то есть:
MyArr arr1 = new MyArr(5);
Console.WriteLine(“”+arr1[0]);
Свойства. Свойства представляют собой некоторые характеристики объекта. Например у нас есть Кот со свойством цвета:
class Cat{
private string Color{get; set; }
}
Указание такого варианта get и set подразумевает собой наличие доступа как к установлению значения для свойства, так и для получения.
Cat.Color = “green”.