Поделиться через


Object Data Type

Содержит адреса, ссылающиеся на объекты. Для переменной можно назначить любой Object ссылочный тип (строка, массив, класс или интерфейс). Переменная Object также может ссылаться на данные любого типа значения (числовые, Boolean, , структуру CharDateили перечисление).

Замечания

Тип 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 BasicObject.

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

    При объявлении переменной объекта попробуйте использовать определенный тип класса, например OperatingSystemвместо обобщенного Object типа. Кроме того, следует использовать наиболее конкретный класс, например TextBox вместо Controlэтого, чтобы получить доступ к его свойствам и методам. Обычно можно использовать список классов в браузере объектов для поиска доступных имен классов.

  • Расширение. Все типы данных и все ссылочные типы расширяются до Object типа данных. Это означает, что вы можете преобразовать любой System.OverflowException тип в Object без возникновения ошибки.

    Однако при преобразовании между типами значений и ObjectVisual 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)

См. также