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

objectexpressiontypename 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

É o operador (Visual Basic)

Operador IsNot (Visual Basic)

Precedência de operadores em Visual Basic

Operadores listados pela funcionalidade (Visual Basic)

Conceitos

Operadores de comparação em Visual Basic

Operadores e expressões em Visual Basic