Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Verifica se o tipo de tempo de execução do resultado de uma expressão é compatível com o tipo especificado.
Sintaxe
result = TypeOf objectexpression Is typename
result = TypeOf objectexpression IsNot typename
Partes
result
Retornou. Um valor de Boolean.
objectexpression
Obrigatório Qualquer expressão avaliada como um tipo de referência.
typename
Obrigatório Qualquer nome de tipo de dados.
Observações
O TypeOf operador determina se o tipo de tempo de execução é objectexpression compatível com typenameo . A compatibilidade depende da categoria de tipo de typename. A tabela a seguir mostra como a compatibilidade é determinada.
Categoria de tipo de typename |
Critério de compatibilidade |
|---|---|
| Classe |
objectexpression é do tipo typename ou herda de typename |
| Estrutura |
objectexpression é do tipo typename |
| Interfaz |
objectexpression implementa typename ou herda de uma classe que implementa typename |
Se o tipo de tempo de execução satisfizer o critério de objectexpression compatibilidade, result é True. Caso contrário, result é False. Se objectexpression é nulo, então TypeOf...Is retorna False, e ...IsNot retorna True.
TypeOf é sempre usado com a Is palavra-chave para construir uma TypeOfexpressão ...Is , ou com a IsNot palavra-chave para construir uma TypeOfexpressão ...IsNot .
Exemplo
O exemplo a seguir usa TypeOfexpressões ...Is para testar a compatibilidade de tipo de duas variáveis de referência de objeto com vários tipos de dados.
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)
A variável refInteger tem um tipo de tempo de execução de Integer. É compatível com, Integer mas não com.Double A variável refForm tem um tipo de tempo de execução de Form. É compatível com Form porque esse é o seu tipo, com Control porque Form herda de Control, e com IComponent porque Form herda de Component, que implementa IComponent. No entanto, refForm não é compatível com Label.