Compartilhar via


Operador TypeOf (Visual Basic)

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.

Consulte também