Share via


Tipos de valor y tipos de referencia

En Visual Basic, los tipos de datos se implementan basado en su clasificación. Los tipos de datos de Visual Basic se pueden clasificar en función de si una variable de un tipo específico almacena sus propios datos o un puntero a los datos. Si almacena sus propios datos, se trata de un tipo de valor; si contiene un puntero a los datos guardados en cualquier otro lugar de la memoria, es un tipo de referencia.

Tipos de valor

Un tipo de datos es un tipo de valores si almacena los datos en su propia asignación de memoria. Los tipos de valor incluyen lo siguiente:

  • Todos los tipos de datos numéricos

  • Boolean, Char y Date

  • Todas las estructuras, incluso si sus miembros son tipos de referencia

  • Las enumeraciones, ya que su tipo subyacente es siempre SByte, Short, Integer, Long, Byte, UShort, UInteger o ULong

Cada estructura es un tipo de valor, aunque contiene miembros de tipo de referencia. Por esta razón, las estructuras de .NET Framework implementan los tipos de valor como Char y Integer .

Se puede declarar un tipo de valor utilizando la palabra clave reservada, por ejemplo, Decimal. También puede utilizar la palabra clave New para inicializar un tipo de valor. Esto es especialmente útil si el tipo tiene un constructor que toma parámetros. Un ejemplo de esto es el constructor #ctor(Int32, Int32, Int32, Boolean, Byte) que compila un nuevo valor Decimal de las partes proporcionadas.

Tipos de referencia

Un tipo de referencia contiene un puntero a otra ubicación de memoria que almacena los datos. Los tipos de referencia incluyen lo siguiente:

  • String

  • Todas las matrices, incluso si sus elementos son tipos de valor

  • Los tipos de clase, como Form

  • Delegados

Una clase es un tipo de referencia. Por este motivo, los tipos de referencia como Object y String son admitidos por clases de .NET Framework. Observe que cada matriz es un tipo de referencia, aunque sus miembros sean tipos de valor.

Como un tipo de referencia representa una clase subyacente de.NET Framework, debe utilizar la palabra clave de New (Operador, Visual Basic) cuando se inicializa. La instrucción siguiente inicializa una matriz.

Dim totals() As Single = New Single(8) {}

Elementos que no son tipos

Los elementos de programación siguientes no se califican como tipos porque no es posible especificar ninguno de ellos como tipo de datos para un elemento declarado:

  • Espacios de nombres

  • Módulos

  • Eventos

  • Propiedades y procedimientos

  • Variables, constantes y campos

Trabajar con el tipo de datos Object

Puede asignar indistintamente un tipo de referencia o un tipo de valores a una variable del tipo de datos Object. Una variable Object siempre contiene un puntero a los datos, nunca los propios datos. Sin embargo, si se asigna un tipo de valor a una variable Object, ésta se comporta como si contuviera sus propios datos. Para obtener más información, vea Object (Tipo de datos).

Puede averiguar si una variable de Object actúa como un tipo de referencia o un tipo de valor al método de IsReference en la clase de Information de espacio de nombres de Microsoft.VisualBasic . Information.IsReference devuelve True si el contenido de la variable de Object representa un tipo de referencia.

Vea también

Referencia

Structure (Instrucción)

Object (Tipo de datos)

Conceptos

Tipos que admiten valores null (Visual Basic)

Uso eficiente de tipos de datos (Visual Basic)

Tipos de datos en Visual Basic

Otros recursos

Conversiones de tipos en Visual Basic