
- •Введение
- •Создание простого приложения в ms Visual Studio
- •Отладка программы
- •Пошаговый режим
- •Точки останова
- •Безусловные точки останова
- •Условные точки останова
- •Просмотр переменных
- •Стек вызова функций
- •Разработка оконных приложений
- •Размещение компонентов на форме. Свойства компонента.
- •Компонент CheckBoxListBox
- •Переменные
- •Приведение типов
- •Операции, приоритет
- •Перегрузка операций
- •If(выражение_1) оператор_1
- •Циклы While
- •Цикл foreach
- •Программирование классов
- •Введение в классы и объекты в с#
- •Общий синтаксис класса
- •Поля и свойства
- •Использование переменного числа аргументов
- •Объявление объектов класса. Оператор new
- •Инциализация членов класса
- •Конструкторы и деструкторы
- •Ключевое слово this
- •Ключевое слово static
- •Наследование
- •Полиморфизм.
- •Абстрактные классы
- •Интерфейсы
- •Реализация интерфейсов
- •Интерфейсные свойства
- •Интерфейсные индексаторы
- •Массивы
- •Обработка исключительных ситуаций
- •Предварительная проверка параметров
- •Проверка кодов возврата функций и методов
- •Применение механизма исключений
- •Блоки try-catch
- •Применение блока finally
- •Массивы как коллекции
- •Коллекция ArrayList
Массивы
При работе программы с набором объектов одинакового типа во многих случаях удобно образовать из этих объектов структуру данных, называемую массивом. (array)
Каждый элемент массива хранит один объект и ему присваивается свой номер (индекс). Зная индекс элемента массива, программа может извлечь или обновить нужный ей объект. Следует отметить, что в одном массиве могут храниться объекты базового класса и производных классов. Рассмотрим пример объявления массива из 1 элементов:
int[] mas = new int[10];
В данном примере объявлена ссылка mas на одномерный массив, содержащий 10 ячеек для хранения целых чисел со значением типа int. Также следует учитывать, что в данном примере мы создали не только ссылку, но и сразу же создали сам массив с помощью оператора new, указав размер массива. Без этого программа не смогла бы использовать ссылку для работы с массивом, так как в ней будет храниться значение null.
При объявлении массива не резервируется память, поэтому в объявлении ссылки размеры массива не указываются. После выполнения резервирования памяти оператором new размер массива становится фиксированным.
Типы массивов
Как и большинство языков программирования, язык С# позволяет создавать одномерные и многомерные массивы. Кроме того, возможно создание массивов, содержащих другие массивы.
Одномерные массивы
Одномерны массив возможно представить в виде последовательности ячеек, каждая из которых имеет свой номер. Нумерация массива начинается с 0.
Задание значений элементам массива может быть статическим и динамическим. При статическом задании значений их указывают сразу при создании массива.
int[] mas = {1,7,13};
Заметим, что при данном типе задания элементов массива их индексы указывать не нужно, так как они определяются автоматически исходя из количества элементов в списке инициализации.
При динамическом задании применяется следующий код:
int [] mas1 = new int[10];
…
mas1[0] = 1;
mas1[1] = 7;
mas1[2] = 13;
Двумерные массивы
Двумерные массивы можно представить в виде матрицы, в узлах которой хранятся объекты. Для создания двумерного массива используется конструкция следующего вида:
int[,] TwoDimArray = new int[2,3];
Здесь при объявлении массива мы использовали запятую для того, чтобы указать компилятору на необходимость создания ссылки TwoDimArray на двумерны массив. Кроме того, в операторе new мы указали количество строк и столбцов создаваемого двумерного массива.
Многомерные массивы
Многомерные массивы имеют структуру, похожую на двумерные массивы, но более сложного вида. Как пример, рассмотрим объявление трехмерного массива.
int[,,] MultiDimArray = new int[6,4,8];
Количество запятых должно равняться размерности массива, уменьшенной на 1.
Инициализация многомерных массивов может быть как динамической, так и статической.
Массивы массивов
В языке С# допускается создавать массивы массивов, называемые также несимметричными массивами или ступенчатыми.
Рисунок 1 – пример ступенчатого массива
На рисунке 1 приведен массив, содержащий 5 одномерных массивов разного размера. При необходимости возможно объединение не только одномерных массивов, но и многомерных. Однако работа с подобными структурами требует хорошего пространственного воображения.
Объявление массива массивов выполняется при помощи нескольких пар квадратных скобок.
string[][] JaggedArray = new string[2][];
Так как мы указали размерность данного ступенчатого массива, равную двум, то необходимо инициализировать два массивы строк:
JaggedArray[0] = new string[2];
JaggedArray[1] = new string[4];
Доступ к элементам данного массива осуществляется следующим образом:
JaggedArray[1][2] = “qwerty”;
При помощи первой пары квадратных скобок указывается индекс массива, а при помощи второй – индекс элемента в массиве.
В языке С# допускается создание вложенных ступенчатых массивов.
Например:
string[,,,][,][,,,] CompArray;
Данная запись означает создание ссылки на четырехмерный массив, содержащий двумерный массив, который в свою очередь содержит четырехмерный массив строк, однако применение подобных структур вызывает сложности при написании и исправлении программы.