Caracteres de tipo (Visual Basic)

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 con un carácter de tipo. El carácter de tipo debe seguir inmediatamente al elemento, sin caracteres intermedios de ninguna clase.

El carácter de tipo no forma parte del nombre del elemento. Se puede hacer referencia a un elemento definido con un carácter de tipo sin necesidad de que este aparezca.

Caracteres de tipo identificador

Visual Basic proporciona un conjunto de caracteres de tipo identificador que puede usar en una declaración para especificar el tipo de datos de una variable o constante. En la tabla siguiente se muestran los caracteres de tipo identificador disponibles con ejemplos de uso.

Carácter de tipo identificador Tipo de datos Ejemplo
% Integer Dim L%
& Long Dim M&
@ Decimal Const W@ = 37.5
! Single Dim Q!
# Double Dim X#
$ String Dim V$ = "Secret"

No existen caracteres de tipo identificador para los tipos de datos Boolean, Byte, Char, Date, Object, SByte, Short, UInteger, ULong o UShort, ni para ningún tipo de datos compuesto como matrices o estructuras.

En algunos casos, puede anexar el carácter $ a una función de Visual Basic, por ejemplo Left$, en lugar de Left, para obtener un valor devuelto del tipo String.

En todos los casos, el carácter de tipo identificador debe seguir inmediatamente el nombre del identificador.

Caracteres de tipo literal

Un literal es una representación textual de un valor determinado de un tipo de datos.

Tipos literales predeterminados

La forma de un literal tal como aparece en el código normalmente determina su tipo de datos. En la tabla siguiente se muestran estos tipos predeterminados.

Forma textual del literal Tipo de datos predeterminado Ejemplo
Elemento numérico, sin fracciones Integer 2147483647
Elemento numérico, sin fracciones, demasiado grande para Integer Long 2147483648
Elemento numérico, fraccional Double 1.2
Entre comillas dobles String "A"
Entre signos numéricos Date #5/17/1993 9:32 AM#

Tipos literales forzados

Visual Basic proporciona un conjunto de caracteres de tipo literal que puede usar para forzar que un literal asuma un tipo de datos distinto del que indica su forma. Para ello, anexe el carácter al final del literal. En la tabla siguiente se muestran los caracteres de tipo literal disponibles con ejemplos de uso.

Carácter de tipo literal Tipo de datos Ejemplo
S Short I = 347S
I Integer J = 347I
L Long K = 347L
D Decimal X = 347D
F Single Y = 347F
R Double Z = 347R
US UShort L = 347US
UI UInteger M = 347UI
UL ULong N = 347UL
C Char Q = "."C

No existen caracteres de tipo literal para los tipos de datos Boolean, Byte, Date, Object, SByte o String, ni para ningún tipo de datos compuesto como matrices o estructuras.

Los literales también pueden usar los caracteres de tipo identificador (%, &, @, !, #, $), al igual que las variables, constantes y expresiones. Sin embargo, los caracteres de tipo literal (S, I, L, D, F, R, C) solo se pueden usar con literales.

En todos los casos, el carácter de tipo literal debe seguir inmediatamente al valor literal.

Literales hexadecimales, binarios y octales

Normalmente, el compilador interpreta que un literal entero está en el sistema numérico decimal (base 10). También puede definir un literal entero como un número hexadecimal (base 16) con el prefijo &H, como un número binario (base 2) con el prefijo &B y como un número octal (base 8) con el prefijo &O. Los dígitos que siguen al prefijo deben ser adecuados para el sistema numérico. En la tabla siguiente se muestra esto.

Base numérica Prefijo Valores de dígito válidos Ejemplo
Hexadecimal (base 16) &H 0-9 y A-F &HFFFF
Binario (base 2) &B 0-1 &B01111100
Octal (base 8) &O 0-7 &O77

A partir de Visual Basic 2017, puede usar el carácter de subrayado (_) como separador de grupos para mejorar la legibilidad de un literal entero. En el ejemplo siguiente se usa el carácter _ para agrupar un literal binario en grupos de 8 bits:

Dim number As Integer = &B00100010_11000101_11001111_11001101

Un carácter de tipo literal puede seguir a un literal con prefijo. Esto se muestra en el ejemplo siguiente.

Dim counter As Short = &H8000S
Dim flags As UShort = &H8000US

En el ejemplo anterior, counter tiene el valor decimal de -32768 y flags tiene el valor decimal de +32768.

A partir de Visual Basic 15.5 también puede usar el carácter de subrayado (_) como separador inicial entre el prefijo y los dígitos hexadecimales, binarios u octales. Por ejemplo:

Dim number As Integer = &H_C305_F860

Para usar el carácter de subrayado como separador inicial, debe agregar el elemento siguiente al archivo del proyecto de Visual Basic (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Para más información, consulte Selección de la versión del lenguaje de Visual Basic.

Consulte también