TypeOf (Operador, Visual Basic)
Compara una variable de referencia a objeto con un tipo de datos.
result = TypeOf objectexpression Is typename
Elementos
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 |
---|---|
Clase |
objectexpression es de tipo typename o hereda de typename |
Estructura |
objectexpression es de tipo typename |
Interfaz |
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
Referencia
IsNot (Operador) (Visual Basic)
Prioridad de operador en Visual Basic
Operadores enumerados por funcionalidad (Visual Basic)