Share via


Tipi di dati costanti e letterali (Visual Basic)

Un valore letterale è un valore espresso come se stesso anziché come valore di una variabile o come risultato di un'espressione, ad esempio il numero 3 o la stringa "Hello". Una costante è un nome significativo che assume il posto di un valore letterale e mantiene lo stesso valore in tutto il programma, al contrario di una variabile, il cui valore può cambiare.

Quando Option Infer è Off e Option Strict è On, è necessario dichiarare tutte le costanti in modo esplicito con un tipo di dati. Nell'esempio seguente il tipo di dati di MyByte viene dichiarato in modo esplicito come tipo di dati Byte:

Option Strict On

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

Quando Option Infer è On o Option Strict è Off, è possibile dichiarare una costante senza specificare un tipo di dati con una clausola As. Il compilatore determina il tipo della costante dal tipo dell'espressione. Per impostazione predefinita, viene eseguito il cast di un valore letterale intero numerico al tipo di dati Integer. Il tipo di dati predefinito per i numeri a virgola mobile è Double e le parole chiave True e False specificare una costante Boolean.

Valori letterali e coercizione dei tipi

In alcuni casi, è possibile forzare un valore letterale impostandolo su un particolare tipo di dati, ad esempio quando si assegna un valore letterale integrale particolarmente grande a una variabile di tipo Decimal. L'esempio seguente produce un errore:

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

L'errore risulta dalla rappresentazione del valore letterale. Il tipo di dati Decimal può contenere un valore di grandi dimensioni, ma il valore letterale viene rappresentato in modo implicito come Long, che non può contenerlo.

È possibile forzare un valore letterale impostandolo su un tipo di dati specifico in due modi: aggiungendo un carattere di tipo o inserendolo all'interno di caratteri di inclusione. Un carattere di tipo o i caratteri di inclusione devono precedere e/o seguire immediatamente il valore letterale, senza spazi o caratteri intermedi di qualsiasi tipo.

Per fare in modo che l'esempio precedente funzioni, è possibile accodare il carattere di tipo D al valore letterale, che ne determina la rappresentazione come Decimal:

Dim MyDecimal As Decimal = 100000000000000000000D

L'esempio seguente illustra l'utilizzo corretto dei caratteri di tipo e dei caratteri di inclusione:

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

La tabella seguente mostra i caratteri di inclusione e i caratteri di tipo disponibili in Visual Basic.

Tipo di dati Carattere di inclusione Carattere di tipo accodato
Boolean (nessuno) (nessuno)
Byte (nessuno) (nessuno)
Char " A
Date # (nessuno)
Decimal (nessuno) D o @
Double (nessuno) R o #
Integer (nessuno) I o %
Long (nessuno) L o &
Short (nessuno) S
Single (nessuno) F o !
String " (nessuno)

Vedi anche