Object Data Type
Содержит адреса, ссылающиеся на объекты. Для переменной можно назначить любой Object
ссылочный тип (строка, массив, класс или интерфейс). Переменная Object
также может ссылаться на данные любого типа значения (числовые, Boolean
, , структуру Char
Date
или перечисление).
Замечания
Тип Object
данных может указывать на данные любого типа данных, включая любой экземпляр объекта, распознаваемый приложением. Используется Object
, если во время компиляции не известно, на какой тип данных может указывать переменная.
Значение Object
по умолчанию равно ( Nothing
пустой ссылке).
Типы данных
Можно назначить переменную, константу или выражение любого типа данных переменной Object
. Чтобы определить тип Object
данных, на который в данный момент ссылается переменная, можно использовать GetTypeCode метод System.Type класса. Это показано в следующем примере.
Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())
Тип Object
данных — это ссылочный тип. Однако Visual Basic рассматривает Object
переменную как тип значения, когда он ссылается на данные типа значения.
Хранилище
Независимо от типа данных, к нему относится, Object
переменная не содержит самого значения данных, а указатель на значение. Он всегда использует четыре байта в памяти компьютера, но это не включает хранилище для данных, представляющих значение переменной. Из-за кода, использующего указатель для поиска данных, переменные с Object
типами значений немного медленнее для доступа, чем явно типизированные переменные.
Советы по программированию
Вопросы взаимодействия. Если вы работаете с компонентами, не написанными для платформа .NET Framework, например для объектов Automation или COM, помните, что типы указателей в других средах несовместимы с типом Visual Basic
Object
.Производительность. Переменная, объявленная с типом
Object
, достаточно гибкая, чтобы содержать ссылку на любой объект. Однако при вызове метода или свойства в такой переменной всегда возникает поздняя привязка (во время выполнения). Чтобы принудительно принудить раннюю привязку (во время компиляции) и повысить производительность, объявите переменную с определенным именем класса или приведите ее к конкретному типу данных.При объявлении переменной объекта попробуйте использовать определенный тип класса, например OperatingSystemвместо обобщенного
Object
типа. Кроме того, следует использовать наиболее конкретный класс, например TextBox вместо Controlэтого, чтобы получить доступ к его свойствам и методам. Обычно можно использовать список классов в браузере объектов для поиска доступных имен классов.Расширение. Все типы данных и все ссылочные типы расширяются до
Object
типа данных. Это означает, что вы можете преобразовать любой System.OverflowException тип вObject
без возникновения ошибки.Однако при преобразовании между типами значений и
Object
Visual Basic выполняет операции, называемые боксом и распаковки, что делает выполнение более медленным.Тип символов.
Object
не имеет символа литерального типа или символа типа идентификатора.Тип платформы. Соответствующий тип в платформа .NET Framework является классомSystem.Object.
Пример
В следующем примере показана Object
переменная, указывающая на экземпляр объекта.
Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)