Tipos de dados constantes e literais (Visual Basic)

Um literal é um valor que é expresso como ele mesmo, em vez de como o valor de uma variável ou o resultado de uma expressão, como o número 3 ou a cadeia de caracteres "Olá". Uma constante é um nome significativo que toma o lugar de um literal e mantém esse mesmo valor em todo o programa, em oposição a uma variável, cujo valor pode mudar.

Quando Option Infer é Off e Option Strict é On, você deve declarar todas as constantes explicitamente com um tipo de dados. No exemplo a seguir, o tipo de dados de é explicitamente declarado como tipo de MyByte dados Byte:

Option Strict On

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

Quando Option Infer é On ou Option Strict é Off, você pode declarar uma constante sem especificar um tipo de dados com uma As cláusula. O compilador determina o tipo da constante a partir do tipo da expressão. Um literal inteiro numérico é convertido por padrão para o Integer tipo de dados. O tipo de dados padrão para números de vírgula flutuante é Double, e as palavras-chave True e False especificar uma Boolean constante.

Literais e Coerção de Tipo

Em alguns casos, você pode querer forçar um literal para um tipo de dados específico; por exemplo, ao atribuir um valor literal integral particularmente grande a uma variável do tipo Decimal. O exemplo a seguir produz um erro:

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

O erro resulta da representação do literal. O Decimal tipo de dados pode conter um valor tão grande, mas o literal é implicitamente representado como um Long, o que não pode.

Você pode coagir um literal a um determinado tipo de dados de duas maneiras: anexando um caractere de texto a ele ou colocando-o dentro de caracteres anexos. Um caractere tipo ou caracteres anexos devem preceder e/ou seguir imediatamente o literal, sem espaço interveniente ou caracteres de qualquer tipo.

Para fazer o exemplo anterior funcionar, você pode acrescentar o D caractere de texto ao literal, o que faz com que ele seja representado como um Decimal:

Dim MyDecimal As Decimal = 100000000000000000000D

O exemplo a seguir demonstra o uso correto de caracteres de tipo e caracteres de delimitação:

' 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!

A tabela a seguir mostra os caracteres que o delimitam e os caracteres de tipo disponíveis no Visual Basic.

Tipo de dados Caráter de anexo Caractere de tipo anexado
Boolean (nenhum) (nenhum)
Byte (nenhum) (nenhum)
Char " C
Date # (nenhum)
Decimal (nenhum) D ou @
Double (nenhum) R ou #
Integer (nenhum) I ou %
Long (nenhum) L ou &
Short (nenhum) S
Single (nenhum) F ou !
String " (nenhum)

Consulte também