Значения объектных переменных (Visual Basic)

Переменная типа данных объекта может ссылаться на данные любого типа. Значение, которое хранится в переменной Object , хранится в памяти в другом месте, а сама переменная содержит указатель на данные.

Функции классификатора объектов

Visual Basic предоставляет функции, возвращающие сведения о том, к чему Object относится переменная, как показано в следующей таблице.

Function Возвращает значение True, если переменная объекта ссылается на
IsArray Массив значений, а не одно значение
IsDate Значение типа данных даты или строка, которую можно интерпретировать как значение даты и времени.
IsDBNull Объект типа DBNull, представляющий отсутствующие или несуществующие данные
IsError Объект исключения, производный от Exception
IsNothing Ничего, т. е. объект в настоящее время не назначается переменной.
IsNumeric Число или строка, которую можно интерпретировать как число
IsReference Ссылочный тип (например, строка, массив, делегат или тип класса)

Эти функции можно использовать для предотвращения отправки недопустимого значения в операцию или процедуру.

Оператор TypeOf

Оператор TypeOf можно также использовать для определения того, относится ли переменная объекта к определенному типу данных. TypeOfВыражение ...Isоценивается, True если тип времени выполнения операнда является производным от указанного типа или реализует указанный тип.

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

' The following statement puts a value type (Integer) in an Object variable.  
Dim num As Object = 10  
' The following statement puts a reference type (Form) in an Object variable.  
Dim frm As Object = New Form()  
If TypeOf num Is Long Then Debug.WriteLine("num is Long")  
If TypeOf num Is Integer Then Debug.WriteLine("num is Integer")  
If TypeOf num Is Short Then Debug.WriteLine("num is Short")  
If TypeOf num Is Object Then Debug.WriteLine("num is Object")  
If TypeOf frm Is Form Then Debug.WriteLine("frm is Form")  
If TypeOf frm Is Label Then Debug.WriteLine("frm is Label")  
If TypeOf frm Is Object Then Debug.WriteLine("frm is Object")  

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

num is Integer

num is Object

frm is Form

frm is Object

Переменная num объекта относится к данным типа Integerи frm ссылается на объект класса Form.

Массивы объектов

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

См. также