Compartilhar via


Valores de variável de objeto (Visual Basic)

Uma variável do Tipo de Dados de Objeto pode se referir a dados de qualquer tipo. O valor que você armazena em uma variável Object é mantido em outro lugar na memória, enquanto a própria variável contém um ponteiro para os dados.

Funções de classificação de objeto

O Visual Basic fornece funções que retornam informações sobre o que uma variável Object se refere, conforme mostrado na tabela a seguir.

Função Retorna True se a variável Object se referir a
IsArray Uma matriz de valores, em vez de um único valor
IsDate Um valor de Tipo de Dados de Data ou uma cadeia de caracteres que pode ser interpretada como um valor de data e hora
IsDBNull Um objeto do tipo DBNull, que representa dados ausentes ou inexistentes
IsError Um objeto de exceção, que deriva de Exception
IsNothing Nada, ou seja, nenhum objeto está atribuído atualmente à variável
IsNumeric Um número ou uma cadeia de caracteres que pode ser interpretada como um número
IsReference Um tipo de referência (como uma cadeia de caracteres, matriz, delegado ou tipo de classe)

Você pode usar essas funções para evitar enviar um valor inválido para uma operação ou um procedimento.

Operador TypeOf

Você também pode usar o operador TypeOf para determinar se uma variável de objeto atualmente se refere a um tipo de dados específico. A expressão TypeOf...Is avalia como True se o tipo de tempo de execução do operando é derivado ou implementa o tipo especificado.

O exemplo a seguir usa TypeOf em variáveis de objeto que se referem a tipos de valor e referência.

' The following statement puts a value type (Integer) in an Object variable.  
Dim num As Object = 10  
' The following statement puts a reference type (Form) in an Object variable.  
Dim frm As Object = New Form()  
If TypeOf num Is Long Then Debug.WriteLine("num is Long")  
If TypeOf num Is Integer Then Debug.WriteLine("num is Integer")  
If TypeOf num Is Short Then Debug.WriteLine("num is Short")  
If TypeOf num Is Object Then Debug.WriteLine("num is Object")  
If TypeOf frm Is Form Then Debug.WriteLine("frm is Form")  
If TypeOf frm Is Label Then Debug.WriteLine("frm is Label")  
If TypeOf frm Is Object Then Debug.WriteLine("frm is Object")  

O exemplo anterior grava as seguintes linhas na janela de Depuração:

num is Integer

num is Object

frm is Form

frm is Object

A variável de objeto num refere-se a dados do tipo Integer e frm refere-se a um objeto de classe Form.

Matrizes de objetos

Você pode declarar e usar uma matriz de variáveis Object. Isso é útil quando você precisa lidar com uma variedade de tipos de dados e classes de objeto. Todos os elementos em uma matriz devem ter o mesmo tipo de dados declarado. Declarar esse tipo de dados como Object permite armazenar objetos e instâncias de classe ao lado de outros tipos de dados na matriz.

Confira também