Compartir a través de


TypeOf (Operador, Visual Basic)

Actualización: noviembre 2007

Compara una variable de referencia a objeto con un tipo de datos.

result = TypeOf objectexpression Is typename

Partes

  • result
    Devuelto. Valor Boolean.

  • objectexpression
    Obligatorio. Cualquier expresión que se evalúa como un tipo de referencia.

  • typename
    Obligatorio. Cualquier nombre de tipo de datos.

Comentarios

El operador TypeOf determina si el tipo en tiempo de ejecución de objectexpression es compatible con typename. La compatibilidad depende de la categoría de tipo de typename. La tabla siguiente muestra cómo se determina la compatibilidad.

Categoría de tipo de typename

Criterio de compatibilidad

Class

objectexpression es de tipo typename o hereda de typename

Structure

objectexpression es de tipo typename

Interface

objectexpression implementa typename o hereda de una clase que implementa typename

Si el tipo en tiempo de ejecución de objectexpression satisface el criterio de compatibilidad, result es True. De lo contrario, result es False.

TypeOf se utiliza siempre con la palabra clave Is para construir la expresión TypeOf...Is.

Ejemplo

En el ejemplo siguiente se utilizan las expresiones TypeOf...Is para comprobar la compatibilidad de tipo de dos variables de referencia a objeto con distintos tipos de datos.

Dim refInteger As Object = 2
MsgBox("TypeOf Object[Integer] Is Integer? " & TypeOf refInteger Is Integer)
MsgBox("TypeOf Object[Integer] Is Double? " & TypeOf refInteger Is Double)
Dim refForm As Object = New System.Windows.Forms.Form
MsgBox("TypeOf Object[Form] Is Form? " & TypeOf refForm Is System.Windows.Forms.Form)
MsgBox("TypeOf Object[Form] Is Label? " & TypeOf refForm Is System.Windows.Forms.Label)
MsgBox("TypeOf Object[Form] Is Control? " & TypeOf refForm Is System.Windows.Forms.Control)
MsgBox("TypeOf Object[Form] Is IComponent? " & TypeOf refForm Is System.ComponentModel.IComponent)

La variable refInteger tiene un tipo en tiempo de ejecución de Integer. Es compatible con Integer pero no con Double. La variable refForm tiene un tipo en tiempo de ejecución de Form. Es compatible con Form porque éste es su tipo, con Control porque Form hereda de Control y con IComponent porque Form hereda de Component, que implementa IComponent. Sin embargo, refForm no es compatible con Label.

Vea también

Conceptos

Operadores de comparación en Visual Basic

Operadores y expresiones en Visual Basic

Referencia

Is (Operador, Visual Basic)

IsNot (Operador)

Prioridad de operador en Visual Basic

Operadores enumerados por funcionalidad