Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Verifica se o tipo de runtime 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
Retornado. Um valor Boolean.
objectexpression
Obrigatório Qualquer expressão que seja 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 objectexpression execução é compatível com typename. 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 |
| Interfase |
objectexpression
typename implementa ou herda de uma classe que implementatypename |
Se o tipo de tempo de objectexpression execução atender ao critério de compatibilidade, result será True. Caso contrário, result é False. Se objectexpression for nulo, ... TypeOfIs retornará Falsee ... retornará TrueIsNot .
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. Ele é compatível com Integer , mas não com Double. A variável refForm tem um tipo de tempo de execução de Form. Ele é compatível com Form porque esse é o seu tipo, com Control porque Form herda de Control, e com IComponent porque Form herda de Component, o que implementa IComponent. No entanto, refForm não é compatível com Label.