Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Создание массивов с ненулевой нижней границей




CLR допускает создание массивов с ненулевой нижней границей. Собственные массивы можно создавать динамически путем вызова статического метода CreateInstancе() типа Array. Существует несколько перегруженных версий этого метода. В качестве параметров этой функции можно задать тип элементов массива, размерность массива, нижнюю границу массива и число элементов в каждом измерении. CreateInstance выделяет память под массив, записывает заданные параметры в служебную область блока памяти, отведенного под массив, и возвращает ссылку на массив. Чтобы упростить доступ к элементам массива, эту ссылку можно привести к типу переменной.

 

Пример динамического создания двухмерного массива значений System.Decimal.

// двухмерный массив [1995..2004][1..4].

Int32[] lowerBounds = {1995,1};

Int32[] lengths = {10,4};

Decimal[,] Q = (Decimal[,])Array.CreateInstance(typeof(Decimal), lengths, lowerBounds);

 

Вложенные массивы.

CLR поддерживает также вложенные (jagged) (или ломаные) массивы. Такой массив содержит в качестве внутренних элементов некоторое количество внутренних массивов. Каждый из внутренних массивов может иметь свой уникальный размер. Вложенные массивы не соответствуют CLS. Такими массивами нельзя обмениваться между программами, написанными на разных языках. В С# есть поддержка вложенных массивов.

Вложенные массивы объявляются с помощью наборов квадратных скобок, обозначающих размерности массива.

Для объявления двумерного ломаного массива, используется следующий формат записи:

тип[] [] имя = new тип[размер][];

Здесь элемент размер означает количество внутренних массивов в массиве. Для этих внутренних массивов память выделяется индивидуально, что позволяет задать разный размер внутренним массивам.

Пример, при объявлении массива X выделяется память для его первой размерности, а память для его второй размерности выделяется "вручную",

int [ ] [ ] X = new int [ 3 ] [ ];

X[0] = new int[4];

X[l] = new int[3];

X[2] = new int[5];

После выполнения этого фрагмента массив X выглядит так:

Х[0][0] Х[0][1] Х[0][2] Х[0][3]  
Х[1][0] Х[1][1] Х[1][2]    
Х[2][0] Х[2][1] Х[2][2] Х[2][3] Х[2][4]

После создания ломаного массива доступ к элементу осуществляется посредством задания индекса внутри собственного набора квадратных скобок.

 

Пример присвоения числа 10 элементу массива X с координатами 2 и 1:

Х[2][1] = 10;

Этот синтаксис отличается от того, который используется для доступа к элементам прямоугольного массива.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных