Object Data Type
Contiene direcciones que hacen referencia a objetos. Puede asignar cualquier tipo de referencia (cadena, matriz, clase o interfaz) a una variable Object
. Una variable Object
también puede hace referencia a datos de cualquier tipo de valor (numérico, Boolean
, Char
, Date
, estructura o enumeración).
Comentarios
El tipo de datos Object
puede apuntar a datos de cualquier tipo de datos, incluida cualquier instancia de objeto que la aplicación reconozca. Use Object
cuando no sepa en tiempo de compilación a qué tipo de datos podría apuntar la variable.
El valor predeterminado de Object
es Nothing
(una referencia nula).
Tipo de datos
Puede asignar una variable, una constante o una expresión de cualquier tipo de datos a una variable Object
. Para determinar el tipo de datos al que hace referencia actualmente una variable Object
, puede usar el método GetTypeCode de la clase System.Type. Esto se ilustra en el siguiente ejemplo:
Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())
El tipo de datos Object
es un tipo de referencia. Sin embargo, Visual Basic trata una variable Object
como un tipo de valor cuando hace referencia a datos de un tipo de valor.
Storage
Independientemente del tipo de datos al que hace referencia, una variable Object
no contiene el valor de datos mismo, sino un puntero al valor. Siempre usa cuatro bytes en la memoria del equipo, pero esto no incluye el almacenamiento de los datos que representan el valor de la variable. Debido al código que usa el puntero para buscar los datos, las variables Object
que contienen tipos de valor son ligeramente más lentas para acceder a las variables con tipo explícito.
Sugerencias de programación
Consideraciones de interoperabilidad. Si interactúa con componentes no escritos para .NET Framework, por ejemplo, objetos de Automation o COM, tenga en cuenta que los tipos de puntero definidos en otros entornos no son compatibles con el tipo
Object
de Visual Basic.Rendimiento. Una variable que declara con el tipo
Object
es lo suficientemente flexible como para contener una referencia a cualquier objeto. Sin embargo, cuando invoca un método o propiedad en una variable de ese tipo, siempre da como resultado un enlace tardío (en tiempo de ejecución). Para forzar el enlace temprano (en tiempo de compilación) y un mejor rendimiento, declare la variable con un nombre de clase específico o conviértala en el tipo de datos específico.Cuando declare una variable de objeto, intente utilizar un tipo de clase específico, por ejemplo OperatingSystem, en lugar del tipo
Object
generalizado. También debe usar la clase más específica disponible, como TextBox en lugar de Control, para poder acceder a sus propiedades y métodos. Por lo general, puede usar la lista Clases en el Examinador de objetos para buscar los nombres de clase disponibles.Ampliación. Todos los tipos de datos y todos los tipos de referencia se amplían al tipo de datos
Object
. Esto significa que puede convertir cualquier tipo enObject
sin que se produzca un error System.OverflowException.Sin embargo, si realiza la conversión entre tipos de valor y
Object
, Visual Basic lleva a cabo operaciones denominadas boxing y unboxing, las que hacen que la ejecución sea más lenta.Caracteres de tipo.
Object
no tiene caracteres de tipo literal ni caracteres de tipo identificador.Tipo de Framework. El tipo correspondiente en .NET Framework es la clase System.Object.
Ejemplo
En el ejemplo siguiente, se ilustra una variable Object
que apunta a una instancia de objeto.
Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)