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
Na variável de objeto, chame o método GetType para recuperar um objeto System.Type.
Dim myObject As Object myObject.GetType()
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ãoTypeOf
...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
.