Partilhar via


Tipo de dados do objeto

Contém endereços que se referem a objetos. Você pode atribuir qualquer tipo de referência (string, matriz, classe ou interface) a uma Object variável. Uma Object variável também pode referir-se a dados de qualquer tipo de valor (numérico, Boolean, Char, Date, estrutura ou enumeração).

Observações

O Object tipo de dados pode apontar para dados de qualquer tipo de dados, incluindo qualquer instância de objeto que seu aplicativo reconheça. Use Object quando você não souber em tempo de compilação para qual tipo de dados a variável pode apontar.

O valor padrão de Object is Nothing (uma referência nula).

Tipos de Dados

Você pode atribuir uma variável, constante ou expressão de qualquer tipo de dados a uma Object variável. Para determinar o tipo de dados ao qual uma Object variável se refere atualmente, você pode usar o GetTypeCode System.Type método da classe. O exemplo a seguir ilustra isso.

Dim myObject As Object
' Suppose myObject has now had something assigned to it.
Dim datTyp As Integer
datTyp = Type.GetTypeCode(myObject.GetType())

O Object tipo de dados é um tipo de referência. No entanto, Visual Basic trata uma Object variável como um tipo de valor quando se refere a dados de um tipo de valor.

Armazenamento

Seja qual for o tipo de dados a que se refere, uma Object variável não contém o valor de dados em si, mas sim um ponteiro para o valor. Ele sempre usa quatro bytes na memória do computador, mas isso não inclui o armazenamento para os dados que representam o valor da variável. Devido ao código que usa o ponteiro para localizar os dados, Object as variáveis que contêm tipos de valor são um pouco mais lentas de acessar do que as variáveis explicitamente tipadas.

Dicas de programação

  • Considerações de interoperabilidade. Se você estiver fazendo interface com componentes não escritos para o .NET Framework, por exemplo, automação ou objetos COM, lembre-se de que os tipos de ponteiro em outros ambientes não são compatíveis com o tipo Visual Basic Object .

  • Desempenho. Uma variável que você declara com o Object tipo é flexível o suficiente para conter uma referência a qualquer objeto. No entanto, quando você invoca um método ou propriedade em tal variável, você sempre incorre em vinculação tardia (em tempo de execução). Para forçar a ligação antecipada (em tempo de compilação) e um melhor desempenho, declare a variável com um nome de classe específico ou converta-a para o tipo de dados específico.

    Ao declarar uma variável de objeto, tente usar um tipo de classe específico, por exemplo OperatingSystem, em vez do tipo generalizado Object . Você também deve usar a classe mais específica disponível, como TextBox em vez de Control, para que você possa acessar suas propriedades e métodos. Normalmente, você pode usar a lista Classes no Pesquisador de Objetos para encontrar nomes de classe disponíveis.

  • Alargamento. Todos os tipos de dados e todos os tipos de referência são ampliados para o Object tipo de dados. Isso significa que você pode converter qualquer tipo em Object sem encontrar um System.OverflowException erro.

    No entanto, se você converter entre tipos de valor e Object, Visual Basic executa operações chamadas boxing e unboxing, que tornam a execução mais lenta.

  • Digite caracteres.Object não tem nenhum caractere de tipo literal ou caractere de tipo de identificador.

  • Tipo de estrutura. O tipo correspondente no .NET Framework é a System.Object classe.

Exemplo

O exemplo a seguir ilustra uma Object variável apontando para uma ocorrência de objeto.

Dim objDb As Object
Dim myCollection As New Collection()
' Suppose myCollection has now been populated.
objDb = myCollection.Item(1)

Consulte também