Object Data TypeObject Data Type

Содержит адреса, которые ссылаются на объекты.Holds addresses that refer to objects. В переменную можно назначить любой ссылочный тип (строка, массив, класс или интерфейс) Object .You can assign any reference type (string, array, class, or interface) to an Object variable. ObjectПеременная также может ссылаться на данные любого типа значения (числовой,,,, Boolean Char Date Структура или перечисление).An Object variable can also refer to data of any value type (numeric, Boolean, Char, Date, structure, or enumeration).

КомментарииRemarks

ObjectТип данных может указывать на данные любого типа данных, включая любой экземпляр объекта, распознаваемый приложением.The Object data type can point to data of any data type, including any object instance your application recognizes. Используйте Object , если во время компиляции неизвестно, на какой тип данных может указывать переменная.Use Object when you do not know at compile time what data type the variable might point to.

Значение по умолчанию ObjectNothing (пустая ссылка).The default value of Object is Nothing (a null reference).

Типы данныхData Types

Переменной можно присвоить переменную, константу или выражение любого типа данных Object .You can assign a variable, constant, or expression of any data type to an Object variable. Чтобы определить тип данных Object , на который в настоящее время ссылается переменная, можно использовать GetTypeCode метод System.Type класса.To determine the data type an Object variable currently refers to, you can use the GetTypeCode method of the System.Type class. Это показано в следующем примере.The following example illustrates this.

Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())

ObjectТип данных является ссылочным типом.The Object data type is a reference type. Однако Visual Basic обрабатывает Object переменную как тип значения, если она ссылается на данные типа значения.However, Visual Basic treats an Object variable as a value type when it refers to data of a value type.

ПамятьStorage

Любой тип данных, на который он ссылается, Object переменная не содержит само значение данных, а указатель на это значение.Whatever data type it refers to, an Object variable does not contain the data value itself, but rather a pointer to the value. Он всегда использует четыре байта в памяти компьютера, но не включает хранилище для данных, представляющих значение переменной.It always uses four bytes in computer memory, but this does not include the storage for the data representing the value of the variable. Из-за кода, использующего указатель для нахождение данных, Object переменные, содержащие типы значений, немного медленнее, чем явно типизированные переменные.Because of the code that uses the pointer to locate the data, Object variables holding value types are slightly slower to access than explicitly typed variables.

Советы по программированиюProgramming Tips

  • Вопросы взаимодействия.Interop Considerations. Если вы взаимодействуете с компонентами, которые не написаны для .NET Framework, например автоматизации или COM-объекты, помните, что типы указателей в других средах несовместимы с Object типом Visual Basic.If you are interfacing with components not written for the .NET Framework, for example Automation or COM objects, keep in mind that pointer types in other environments are not compatible with the Visual Basic Object type.

  • Производительность.Performance. Переменная, объявляемая с Object типом, достаточно гибка, чтобы содержать ссылку на любой объект.A variable you declare with the Object type is flexible enough to contain a reference to any object. Однако при вызове метода или свойства для такой переменной всегда вызывается позднее связывание (во время выполнения).However, when you invoke a method or property on such a variable, you always incur late binding (at run time). Чтобы принудительно выполнить раннее связывание (во время компиляции) и повысить производительность, объявите переменную с конкретным именем класса или приведите ее к конкретному типу данных.To force early binding (at compile time) and better performance, declare the variable with a specific class name, or cast it to the specific data type.

    При объявлении объектной переменной попробуйте использовать конкретный тип класса, например OperatingSystem , вместо обобщенного Object типа.When you declare an object variable, try to use a specific class type, for example OperatingSystem, instead of the generalized Object type. Также следует использовать наиболее конкретный класс, например TextBox Control , вместо, чтобы получить доступ к его свойствам и методам.You should also use the most specific class available, such as TextBox instead of Control, so that you can access its properties and methods. Для поиска доступных имен классов обычно можно использовать список классы в обозревателе объектов .You can usually use the Classes list in the Object Browser to find available class names.

  • Расширяющие.Widening. Все типы данных и все ссылочные типы расширяются до Object типа данных.All data types and all reference types widen to the Object data type. Это означает, что можно преобразовать любой тип в Object без возникновения System.OverflowException ошибки.This means you can convert any type to Object without encountering a System.OverflowException error.

    Однако при преобразовании между типами значений и Object Visual Basic выполняет операции, называемые упаковкой и распаковкой, что делает выполнение более медленным.However, if you convert between value types and Object, Visual Basic performs operations called boxing and unboxing, which make execution slower.

  • Символы типа.Type Characters. Objectне имеет символа типа литерала или символа типа идентификатора.Object has no literal type character or identifier type character.

  • Тип Framework.Framework Type. Соответствующий тип в .NET Framework — это System.Object класс.The corresponding type in the .NET Framework is the System.Object class.

ПримерExample

В следующем примере показана Object переменная, указывающая на экземпляр объекта.The following example illustrates an Object variable pointing to an object instance.

Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)

См. также разделSee also