Compartilhar via


Como determinar a que tipo uma variável de objeto se refere (Visual Basic)

Uma variável de objeto contém um ponteiro para dados armazenados em outro lugar. O tipo desses dados pode ser alterado durante o tempo de execução. A qualquer momento, você pode usar o método GetTypeCode para determinar o tipo de tempo de execução atual ou o Operador TypeOf para descobrir se o tipo de tempo de execução atual é compatível com um tipo especificado.

Para determinar o tipo exato a que uma variável de objeto se refere atualmente

  1. Na variável de objeto, chame o método GetType para recuperar um objeto System.Type.

    Dim myObject As Object
    myObject.GetType()
    
  2. Na classe System.Type, chame o método compartilhado GetTypeCode para recuperar o valor da enumeração TypeCode para o tipo do objeto.

    Dim myObject As Object
    Dim datTyp As Integer = Type.GetTypeCode(myObject.GetType())
    MsgBox("myObject currently has type code " & CStr(datTyp))
    

    Você pode testar o valor da enumeração TypeCode em relação a qualquer membro de enumeração de interesse, como Double.

Para determinar se o tipo de uma variável de objeto é compatível com um tipo especificado

  • Use o operador TypeOf em combinação com o Operador Is para testar o objeto com uma expressão TypeOf...Is

    If TypeOf objA Is System.Windows.Forms.Control Then
        MsgBox("objA is compatible with the Control class")
    End If
    

    A expressão TypeOf...Is retornará True se o tipo de tempo de execução do objeto for compatível com o tipo especificado.

    O critério de compatibilidade depende se o tipo especificado é uma classe, estrutura ou interface. Em geral, os tipos são compatíveis se o objeto for do mesmo tipo que herda ou implementa o tipo especificado. Para obter mais informações, consulte Operador TypeOf.

Compilar o código

Observe que o tipo especificado não pode ser uma variável ou expressão. Ele precisa ser o nome de um tipo definido, como uma classe, uma estrutura ou uma interface. Isso inclui tipos intrínsecos, como Integer e String.

Confira também