Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Типы массива и другие типы




Размер массива

Массивы нулевой длины

Массив без элементов также называется массивом нулевой длины. Переменная, содержащая массив нулевой длины, не имеет значения Nothing. Чтобы создать массив без элементов, объявите одно из измерений массива равным -1, как показано в следующем примере.

 

VB

Dim twoDimensionalStrings(-1, 3) As String

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

· Без риска возникновения исключения NullReferenceException код должен обращаться к членам класса Array, таким как Length или Rank, или вызывать функцию Visual Basic, такую как UBound.

· Требуется сделать соответствующий код проще, избежав необходимости проверки на значение Nothing как особый случай.

· Код взаимодействует с интерфейсом API, который требует передачи массива нулевой длины в одну или несколько процедур или возвращает массив нулевой длины из одной или нескольких процедур.

Размер массива является произведением длин всех его измерений. Он представляет собой общее число элементов, в данный момент содержащихся в массиве.

В следующем примере показано объявление трехмерного массива:

Dim prices(3, 4, 5) As Long

Общий размер массива в переменной prices составляет (3 + 1) x (4 + 1) x (5 + 1) = 120.

Размер массива можно определить с помощью свойства Length. Длину каждого измерения многомерного массива можно получить с помощью метода GetLength.

Можно изменять размер переменной массива, присваивая ей новый объект массива, или с помощью оператора ReDim.

Каждый массив имеет тип данных, но этот тип отличается от типа данных его элементов. Не существует единого типа данных, подходящего для всех массивов. Вместо этого тип данных массива определяется числом измерений массива, или рангом, и типом данных элементов массива. Две переменные массивов имеют один тип, только если массивы одного ранга и содержат данные одного и того же типа. Длины измерений массива не влияют на тип данных массива.

Каждый массив наследуется от класса System.Array, и можно объявить переменную типа Array, но не нельзя создать массив типа Array. Кроме того, Оператор ReDim (Visual Basic) не может работать с переменной, объявленной как тип Array. По этой причине и для строгой типизации рекомендуется объявить каждый массив как конкретный тип, например Integer, как в предыдущем примере.

 

Можно выяснить тип данных массива или его элементов несколькими способами.

· Можно вызвать метод Object.GetType для переменной для получения объекта Type типа переменной времени выполнения. Объект Type содержит подробные сведения в своих свойствах и методах.

· Можно передать переменную функции TypeName, чтобы получить объект String, содержащий имя типа времени выполнения.

· Можно передать переменную функции VarType для получения значения VariantType, представляющего классификацию типа переменной.

В следующем примере вызывается функция TypeName для определения типа массива и типа элементов в массиве. Массив имеет тип Integer(,), а элементы массива относятся к типу Integer.

VB

Dim thisTwoDimArray(,) As Integer = New Integer(9, 9) {}MsgBox("Type of thisTwoDimArray is " & TypeName(thisTwoDimArray))MsgBox("Type of thisTwoDimArray(0, 0) is " & TypeName(thisTwoDimArray(0, 0)))



Поделиться с друзьями:


Дата добавления: 2015-08-31; Просмотров: 337; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.