Значения объектных переменных (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
позволяет хранить объекты и экземпляры классов вместе с другими типами данных в массиве.
См. также
- Объектные переменные
- Объявление объектной переменной
- Присваивание объектных переменных
- Практическое руководство. Ссылка на текущий экземпляр объекта
- Практическое руководство. Определение типа, на который указывает объектная переменная
- Практическое руководство. Определение наличия связи между двумя объектами
- Практическое руководство. Определение идентичности двух объектов
- Data Types