Compartir a través de


Tipos de datos constantes y literales (Visual Basic)

Un literal es un valor que se expresa como sí mismo en lugar de como el valor de una variable o el resultado de una expresión, como el número 3 o la cadena "Hello". Una constante es un nombre significativo que ocupa el lugar de un literal y conserva este mismo valor en todo el programa, a diferencia de una variable, cuyo valor puede cambiar.

Si Option Infer es Off y Option Strict es On, debe declarar todas las constantes explícitamente con un tipo de datos. En el ejemplo siguiente, el tipo de datos MyByte se declara explícitamente como tipo de datos Byte:

Option Strict On

Public Class Sample
  Public Const MyByte As Byte = 2
End Class

Si Option Infer es On o Option Strict es Off, puede declarar una constante sin especificar un tipo de datos con una cláusula As. El compilador determina el tipo de la constante a partir del tipo de la expresión. Un literal entero numérico se convierte de manera predeterminada en el tipo de datos Integer. El tipo de datos predeterminado de los números de punto flotante es Double, y las palabras clave True y False especifican una constante Boolean.

Literales y coerción de tipos

En algunos casos, es posible que quiera forzar un literal a un tipo de datos determinado; por ejemplo, al asignar un valor literal entero particularmente grande a una variable de tipo Decimal. El siguiente ejemplo genera un error:

Dim myDecimal as Decimal  
myDecimal = 100000000000000000000   ' This causes a compiler error.  

El error se debe a la representación del literal. El tipo de datos Decimal puede contener un valor de este tamaño, pero el literal se representa implícitamente como Long, que no puede.

Puede convertir un literal en un tipo de datos determinado de dos maneras: anexándole un carácter de tipo o colocándolo entre caracteres envolventes. El carácter de tipo o los caracteres envolventes deben preceder inmediatamente o seguir al literal, sin espacio o caracteres intermedios de ningún tipo.

Para que el ejemplo anterior funcione, puede anexar el carácter de tipo D al literal, lo que hace que se represente como Decimal:

Dim MyDecimal As Decimal = 100000000000000000000D

En el ejemplo siguiente se muestra el uso correcto de caracteres de tipo y caracteres envolventes:

' Default to Integer.
Public Const DefaultInteger As Integer = 100

' Default to Double.
Public Const DefaultDouble As Double = 54.3345612

' Force constant to be type Char.
Public Const MyCharacter As Char = "a"c

' DateTime constants.
Public Const MyDate As DateTime = #1/15/2001#
Public Const MyTime As DateTime = #1:15:59 AM#

' Force data type to be Long.
Public Const MyLong As Long = 45L

' Force data type to be Single.
Public Const MySingle As Single = 45.55!

En la tabla siguiente se muestran los caracteres envolventes y los caracteres de tipo disponibles en Visual Basic.

Tipo de datos Carácter envolvente Carácter de tipo anexado
Boolean (ninguno) (ninguno)
Byte (ninguno) (ninguno)
Char " C
Date # (ninguno)
Decimal (ninguno) D o @
Double (ninguno) R o #
Integer (ninguno) I o %
Long (ninguno) L o &
Short (ninguno) S
Single (ninguno) F o !
String " (ninguno)

Consulte también