Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Dim a(1 To 3)



Private Sub Command1_Click()

a(1) = 32

a(2) = "кошка"

a(3) = #8:56:00 AM#

End Sub

В этом случае Visual Basic считает, что массив объявлен по умолчанию специальным типом Variant. Это тип-хамелеон. Он не возражает, если объявленная им переменная будет иметь значение любого типа. Он присматривает, чтобы выполнение программы при этом проходило по возможности гладко и без неприятностей для программиста.

Вместо Dim a(1 To 3) можно было прямо написать Dim a(1 To 3) As Variant.

Еще один пример всеядности Variant (здесь я объявлю этим типом не массив, а переменную):

Dim b As Variant 'можно было просто написать Dim b

Private Sub Command1_Click()

b = 77

b = "кот"

End Sub

Итак, если переменная не объявлена или объявлена без указания типа, Visual Basic считает ее принадлежащей типу Variant. Какой толк от этого типа? Иногда бывает так, что соблюдая приличия и объявляя тип каждой переменной, мы наталкиваемся во время выполнения программы на сообщение об ошибке Type mismatch (несовпадение типов). Это значит, что выполняя операции над данными разных типов и преобразовывая один в другой, Visual Basic не захотел преступать строгие рамки безопасности и приличий и потерпел крах. Не всегда у начинающего программиста хватает знаний, чтобы разобраться в причинах краха. В этом случае, если вы любите риск, объявите все данные одним типом - Variant или вообще не указывайте тип. Теперь вероятность сообщений об ошибке снизится, хотя несколько увеличится вероятность получения недостоверного результата.

Вернемся к нашему желанию иметь набор из элементов разных типов. Программисты не хотят для этого использовать массивы типа Variant. Они используют для этого так называемый пользовательский тип данных.





Дата публикования: 2014-12-28; Прочитано: 255 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...