Compartir a través de


Operador TypeOf (Visual Basic)

Comprueba si el tipo en tiempo de ejecución del resultado de una expresión es compatible con el tipo especificado.

Sintaxis

result = TypeOf objectexpression Is typename  
result = TypeOf objectexpression IsNot typename  

Partes

result
Volvió. Valor Boolean.

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

typename
Obligatorio. Cualquier nombre de tipo de datos.

Observaciones

El TypeOf operador determina si el tipo de tiempo de ejecución de objectexpression es compatible con typename. La compatibilidad depende de la categoría de tipo de typename. En la tabla siguiente se 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 typename implementa o hereda de una clase que implementatypename

Si el tipo en tiempo de ejecución de cumple el criterio de objectexpression compatibilidad, result es True. En caso contrario, result es False. Si objectexpression es null, ... TypeOfIs devuelve Falsey ...IsNot devuelve True.

TypeOf siempre se usa con la Is palabra clave para construir una TypeOfexpresión ...Is o con la IsNot palabra clave para construir una TypeOfexpresión ...IsNot .

Ejemplo

En el ejemplo siguiente se usan TypeOfexpresiones ...Is para probar la compatibilidad de tipos de dos variables de referencia de objetos con varios 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 es su tipo, con Control porque Form hereda de y con IComponent porque Form hereda de ControlComponent, que implementa IComponent. Sin embargo, refForm no es compatible con Label.

Consulte también