Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.