Compartilhar via


Objeto como o Tipo de Dados Universal

O Tipo de dados Object é o tipo de raiz no.NET Framework e em Visual Basic.Isso significa que todos os outros tipos de dados e os tipos de objeto são derivados diretamente ou basicamente.Isso também significa que qualquer outro tipo de dados, se elementar ou composto, pode ser convertido em Object.

Tipagem flexível

Você pode usar Object como o tipo de dados universal.Isso é chamado tipagem flexível .O exemplo a seguir ilustra essa flexibilidade.

Dim v As Object
v = "17"
' v contains the 2-character String value "17".
v = v - 15
' v now contains the Integer value 2.
v = "H" & v
' v now contains the 2-character String value "H2".

Enquanto você pode executar essas operações nas variáveis Object sem muita preocupação com o tipo de dados que elas contêm, você deve evitar as armadilhas a seguir:

  • Se você executar operações aritméticas ou funções em um Object,ele deve conter dados numéricos ou ocorre um erro de tempo de execução.

  • Se você estiver concatenando strings, use o operador & em vez do operador +.Há regras complexas que determinam quando o operador + adiciona operandos e quando os concatena.O operador + também deve executar uma verificação de tipo e a conversão em alguns casos, o que reduz o desempenho.

Alterar o tipo de dados de uma variável de objeto

Embora uma variável Object possa aceitar dados de qualquer tipo, não é possível alterar a variável para um tipo de dados diferente.No entanto, você pode redimesionar uma variávelObject para um array de variáveis Object.O exemplo a seguir ilustra usos válidos e inválidos de ReDim demonstrativo (Visual Basic).

' The following statement declares a single Object.
Dim someObj As Object
' The following reallocation is valid only for Object.
ReDim someObj(8)
' The following statement attempts an INVALID change of data type.
ReDim someObj(8) As Double

A primeira instrução ReDim altera someObj para um array do tipo Object.Isso é válido somente com o tipo de dados Object.A segunda instruçãoReDim é inválida porque ela envolve um tipo de dados diferente.Você pode obter o efeito desejado usando um array separado.O exemplo a seguir ilustra isto:

' First allocate a separate array.
Dim someArray(8) As Double
' Then assign the new array to the Object variable.
someObj = someArray

Objeto como uma alternativa para uma estrutura

Como o tipo de dados Object pode armazenar diversos tipos de dados, você pode usar um array Object em muitas situações em que você esperava usar uma estrutura.Um array Object é um pouco mais flexível do que uma estrutura, pois você pode alterar o tipo de dados que você armazena em cada elemento a qualquer momento, e você pode deixar o array dinâmico para que você possa alterar o tamanho conforme necessário.No entanto, um array Object usa mais memória do que uma estrutura equivalente, e seu desempenho é mais lento.

Consulte também

Conceitos

Programação Sem-Tipos no Visual Basic

Declaração Implícita e Explícita

Verificação de Tipo no Visual Basic

Uso eficiente de tipos de dados

Declaração de Variável Objeto

Atribuição da Variável Objeto

Valores de Variáveis Objeto

Referência

Resumo de tipo de dados (Visual Basic)

Funções de conversão de tipo 

Outros recursos

Conversões de Tipo no Visual Basic