Resumen de tipos de datos (Visual Basic)

En la tabla siguiente se muestran los tipos de datos de Visual Basic .NET, los tipos compatibles con Common Language Runtime, su asignación de almacenamiento nominal y sus intervalos de valores.

Tipo de Visual Basic

Estructura de tipo Common Language Runtime

Asignación de almacenamiento nominal

Intervalo de valores

Boolean

Boolean

En función de la plataforma de implementación

True o False

Byte

Byte

1 byte

0 a 255 (sin signo)

Char (carácter individual)

Char

2 bytes

0 a 65535 (sin signo)

Fecha

DateTime

8 bytes

0:00:00 (medianoche) del 1 de enero de 0001 a 11:59:59 p.m. del 31 de diciembre de 9999.

Decimal

Decimal

16 bytes

0 a +/-79.228.162.514.264.337.593.543.950.335 (+/-7,9... E+28) † sin separador decimal; 0 a +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del decimal;

el número distinto de cero más pequeño es +/-0,0000000000000000000000000001 (+/-1E-28) †

Double (punto flotante de precisión doble)

Double

8 bytes

-1,79769313486231570E+308 a -4,94065645841246544E-324 † para los valores negativos;

4,94065645841246544E-324 a 1,79769313486231570E+308 † para los valores positivos

Integer

Int32

4 bytes

-2.147.483.648 a 2.147.483.647 (con signo)

Long (entero largo)

Int64

8 bytes

-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9,2...E+18 †) (con signo)

Objeto.

Object (clase)

4 bytes en plataforma de 32 bits

8 bytes en plataforma de 64 bits

Cualquier tipo puede almacenarse en una variable de tipo Object

SByte

SByte

1 byte

-128 a 127 (con signo)

Short (entero corto)

Int16

2 bytes

-32.768 a 32.767 (con signo)

Single (punto flotante de precisión sencilla)

Single

4 bytes

-3,4028235E+38 a -1,401298E-45 † para los valores negativos;

1,401298E-45 a 3,4028235E+38 † para los valores positivos

String (longitud variable)

String (clase)

En función de la plataforma de implementación

0 a 2.000 millones de caracteres Unicode aprox.

UInteger

UInt32

4 bytes

0 a 4.294.967.295 (sin signo)

ULong

UInt64

8 bytes

0 a 18.446.744.073.709.551.615 (1,8...E+19 †) (sin signo)

User-Defined (estructura)

(hereda de ValueType)

En función de la plataforma de implementación

Cada miembro de la estructura tiene un intervalo de valores determinado por su tipo de datos y es independiente de los intervalos de valores correspondientes a los demás miembros.

UShort

UInt16

2 bytes

0 a 65.535 (sin signo)

† En notación científica, E hace referencia a una potencia de 10. Por consiguiente, 3,56E+2 significa 3.56 x 102 ó 356 y 3,56E-2 significa 3.56 / 102 ó 0,0356.

Nota

En las cadenas que contienen texto, utilice la función StrConv para pasar de un formato de texto a otro.

Además de especificar un tipo de datos en una instrucción de declaración, puede forzar el tipo de datos de algunos elementos de programación mediante el carácter de tipo. Vea Caracteres de tipo (Visual Basic).

Consumo de memoria

Al declarar un tipo de datos básico, no debe suponerse que su consumo de memoria es igual a su asignación de almacenamiento nominal. Esto se debe a las consideraciones siguientes:

  • Asignación de almacenamiento. Common Language Runtime puede asignar el almacenamiento en función de las características actuales de la plataforma en la que se ejecuta la aplicación. Si la memoria está casi completa, se pueden empaquetar los elementos declarados de la forma más estrecha posible. En otros casos, se podrían alinear las direcciones de memoria a los límites del hardware naturales para optimizar el rendimiento.

  • Ancho de plataforma. La asignación de almacenamiento en una plataforma de 64 bits es diferente a la asignación en una plataforma de 32 bits.

Tipos de datos compuestos

Las mismas consideraciones se aplican a cada miembro de un tipo de datos compuesto, como una estructura o una matriz. No se pueden sumar simplemente todas las asignaciones de almacenamiento nominales de los miembros de tipo. Además, existen otras consideraciones, como las siguientes:

  • Sobrecarga. Algunos tipos compuestos tienen requisitos adicionales de memoria. Por ejemplo, una matriz utiliza memoria adicional para la matriz en sí y para cada dimensión. En una plataforma de 32 bits, esta sobrecarga corresponde a 12 bytes y 8 bytes por cada dimensión. En una plataforma de 64 bits, los requisitos se duplican.

  • Diseño de almacenamiento. No debe suponerse que el orden de almacenamiento en la memoria es igual al orden de declaración. Ni siquiera pueden hacerse predicciones sobre la alineación de bytes, como un límite de 2 bytes o de 4 bytes. Si define una clase o estructura y necesita controlar el diseño de almacenamiento de sus miembros, puede aplicar el atributo StructLayoutAttribute a la clase o estructura.

Sobrecarga de objetos

Una variable Object que haga referencia a un tipo de datos básico o compuesto, utiliza 4 bytes además de los datos contenidos en el tipo de datos.

Vea también

Referencia

Funciones de conversión de tipos (Visual Basic)

Resumen de conversión (Visual Basic)

StrConv

StructLayoutAttribute

Conceptos

Caracteres de tipo (Visual Basic)

Uso eficiente de tipos de datos (Visual Basic)