Partilhar via


Determinando o tipo de objeto

Variáveis de objeto genérico (ou seja, variáveis declarar sistema autônomo Object) pode conter objetos de qualquer classe. Ao usar variáveis do tipo Object, talvez você precise tomar ações diferentes com base na classe do objeto, por exemplo, alguns objetos não pode ser suporte a uma determinada propriedade ou método. Visual Basic fornece duas formas de determinar qual tipo de objeto é armazenado em uma variável de objeto: the TypeName função e o TypeOf...Is operador.

TypeName e TypeOf…Is

The TypeName função retorna uma seqüência de caracteres e é a melhor opção quando você precisa armazenar ou exibir o nome de classe de um objeto, conforme mostrado no fragmento de código a seguir:

Dim Ctrl As Control = New TextBox
MsgBox(TypeName(Ctrl))

The TypeOf...Is operador é a melhor opção para testar o tipo de um objeto, porque é muito mais rápido do que uma comparação de cadeia de caracteres equivalente usando TypeName. O fragmento de código a seguir usa TypeOf...Is dentro de um If...Then...Else demonstrativo:

If TypeOf Ctrl Is Button Then
    MsgBox("The control is a button.")
End If

Um conselho: tenha é conclusão aqui.The TypeOf...Is o operador retorna True Se um objeto for de um tipo específico, ou é derivado de um tipo específico. Quase tudo o que faz com Visual Basic envolve a objetos, que incluem alguns elementos não normalmente considerados objetos, sistema autônomo seqüências de caracteres e inteiros. Esses objetos são obtidos e herdam métodos Object. Quando passar um Integer e avaliadas com Object, o TypeOf...Is o operador retorna True. O exemplo a seguir relata que o parâmetro InParam tanto um Object e um Integer:

Sub CheckType(ByVal InParam As Object)
    ' Both If statements evaluate to True when an
    ' Integer is passed to this procedure.
    If TypeOf InParam Is Object Then
        MsgBox("InParam is an Object")
    End If
    If TypeOf InParam Is Integer Then
        MsgBox("InParam is an Integer")
    End If
End Sub

O exemplo a seguir utiliza dois TypeOf...Is e TypeName para determinar o tipo do objeto passado para ele no Ctrl argumento. The TestObject chamadas de procedimento ShowType com três tipos diferentes de controles.

Para executar o exemplo

  1. Crie um novo projeto Windows aplicativo e adicione um Button controle, uma CheckBox controle e um RadioButton controle ao formulário.

  2. No botão no formulário telefonar o TestObject procedimento.

  3. Adicione o seguinte código ao seu formulário:

    Sub ShowType(ByVal Ctrl As Object)
        'Use the TypeName function to display the class name as text.
        MsgBox(TypeName(Ctrl))
        'Use the TypeOf function to determine the object's type.
        If TypeOf Ctrl Is Button Then
            MsgBox("The control is a button.")
        ElseIf TypeOf Ctrl Is CheckBox Then
            MsgBox("The control is a check box.")
        Else
            MsgBox("The object is some other type of control.")
        End If
    End Sub
    
    Protected Sub TestObject()
        'Test the ShowType procedure with three kinds of objects.
        ShowType(Me.Button1)
        ShowType(Me.CheckBox1)
        ShowType(Me.RadioButton1)
    End Sub
    

Consulte também

Conceitos

Chamando uma propriedade ou método usando um nome de sequência de caracteres

Referência

Tipo de dados Object

Função TypeName (Visual Basic)

Declaração If...Then... (Visual Basic)

Tipo de dados de sequência de caracteres (Visual Basic)

Tipo de Dados Inteiro (Visual Basic)

Outros recursos

Obtendo informações de classe em tempo de execução