Cómo: Determinar el tipo al que hace referencia una variable de objeto (Visual Basic)
Una variable de objeto contiene un puntero a los datos almacenados en otro lugar. El tipo de esos datos puede cambiar durante el tiempo de ejecución. En cualquier momento, puede usar el método GetTypeCode para determinar el tipo en tiempo de ejecución actual o el operador TypeOf para averiguar si el tipo en tiempo de ejecución actual es compatible con un tipo especificado.
Para determinar el tipo exacto al que hace referencia actualmente una variable de objeto
En la variable de objeto, llame al método GetType para recuperar un objeto System.Type.
Dim myObject As Object myObject.GetType()
En la clase System.Type, llame al método GetTypeCode compartido para recuperar el valor de enumeración TypeCode del tipo del objeto.
Dim myObject As Object Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType()) MsgBox("myObject currently has type code " & CStr(datTyp))
Puede probar el valor de enumeración TypeCode con cualquier miembro de enumeración que sea de interés, como
Double
.
Para determinar si el tipo de una variable de objeto es compatible con un tipo especificado
Use el operador
TypeOf
en combinación con el operador Is para probar el objeto con una expresiónTypeOf
...Is
.If TypeOf objA Is System.Windows.Forms.Control Then MsgBox("objA is compatible with the Control class") End If
La expresión
TypeOf
...Is
devuelveTrue
si el tipo en tiempo de ejecución del objeto es compatible con el tipo especificado.El criterio de compatibilidad depende de si el tipo especificado es una clase, estructura o interfaz. En general, los tipos son compatibles si el objeto es del mismo tipo que, hereda de o implementa el tipo especificado. Para obtener más información, vea TypeOf Operator.
Compilar el código
Tenga en cuenta que el tipo especificado no puede ser una variable o expresión. Debe ser el nombre de un tipo definido, como una clase, estructura o interfaz. Esto incluye tipos intrínsecos como Integer
y String
.