Compartilhar via


Operador TypeOf (Visual Basic)

Compara uma variável de referência a objeto com um tipo de dados.

result = TypeOf objectexpression Is typename

Partes

  • result
    Retornado. Um valor Boolean.

  • objectexpression
    Obrigatório. Qualquer expressão avaliada como um tipo de referência.

  • typename
    Obrigatório. Qualquer nome de tipo de dados.

Comentários

O operador TypeOf determina se a tipo em tempo de execução de objectexpression é compatível com typename. A compatibilidade depende da categoria de tipo de typename. A tabela a seguir mostra como compatibilidade é determinada.

Categoria de tipo de typename

Critério de compatibilidade

Classe

objectexpression é do tipo typename ou herda de typename

Estrutura

objectexpressioné do tipotypename

Interface

objectexpression typename implementa ou herda de uma classe que implementa typename

Se o tipo em tempo de execução de objectexpression satisfaz o critério de compatibilidade, result é True. Caso contrário, result é False.

TypeOf é sempre usado com a palavra-chave Is para construir uma expressão TypeOf... Is.

Exemplo

O exemplo a seguir usa expressões TypeOf... Is para testar a compatibilidade das duas variáveis de referência a 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 em tempo de execução Integer. Ele é compatível com Integer, mas não com Double. A variável refForm tem um tipo em tempo de execução Form. É compatível com Form porque é 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.

Consulte também

Referência

Operador Is (Visual Basic)

Operador IsNot (Visual Basic)

Precedência do operador no Visual Basic

Operadores listados por funcionalidade (Visual Basic)

Conceitos

Operadores de comparação no Visual Basic

Operadores e expressões no Visual Basic