Tipi di dati costanti e letterali
Aggiornamento: novembre 2007
Un letterale è un valore che viene espresso come se stesso piuttosto che come valore di variabile o risultato di un'espressione, come ad esempio il numero 3 o la stringa "Hello". Una costante è un nome significativo che viene utilizzato in luogo di un letterale e mantiene lo stesso valore nel corso del programma, contrariamente a una variabile, il cui valore può cambiare.
Se Option Strict è On, è necessario dichiarare tutte le costanti in modo esplicito con un tipo di dati. Nell'esempio riportato di seguito il tipo di dati di MyByte è dichiarato in modo esplicito come Byte:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Quando i tipi di dati vengono dichiarati in modo esplicito non vi sono ambiguità e il codice digitato risulta più leggibile e di facile gestione rispetto al codice non tipizzato. Se Option Strict è Off, invece, il compilatore utilizza il tipo di dati usato per inizializzare la costante. In base all'impostazione predefinita, per un valore letterale di numero integer viene impostato il tipo di dati Integer. Il tipo di dati predefinito per i numeri a virgola mobile è Double, mentre le parole chiave True e False specificano una costante di tipo Boolean.
Assegnazione forzata di valori letterali e tipi
In alcuni casi è possibile che si desideri assegnare in modo forzato un valore letterale a un particolare tipo di dati, ad esempio quando si assegna un valore letterale integrale particolarmente elevato a una variabile di tipo Decimal. L'esempio riportato di seguito provoca un errore:
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
L'errore deriva dalla rappresentazione del valore letterale. Il tipo di dati Decimal è in grado di contenere un valore così elevato, ma il valore letterale è stato rappresentato in modo implicito come Long, che non è in grado di contenerlo.
È possibile assegnare in modo forzato un valore letterale a un particolare tipo di dati in due modi: aggiungendovi un carattere di tipo o inserendolo all'interno di caratteri di contenimento. È necessario che il carattere di tipo o i caratteri di contenimento precedano e/o seguano immediatamente il valore letterale, senza la frapposizione di spazi o caratteri di qualunque tipo.
Per correggere l'esempio precedente, è possibile aggiungere il carattere di tipo D al valore letterale, in modo che venga rappresentato come Decimal:
Dim MyDecimal As Decimal = 100000000000000000000D
Nell'esempio seguente viene illustrato l'utilizzo corretto di caratteri di tipo e caratteri di contenimento:
' 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!
Nella tabella seguente sono riportati i caratteri di contenimento e i caratteri tipo disponibili in Visual Basic.
Tipo di dati |
Carattere di contenimento |
Carattere identificativo del tipo |
---|---|---|
Boolean |
Nessuna |
Nessuna |
Byte |
Nessuna |
Nessuna |
Char |
" |
C |
Date |
# |
Nessuna |
Decimal |
Nessuna |
D o @ |
Double |
Nessuna |
R o # |
Integer |
Nessuna |
I o % |
Long |
Nessuna |
L o & |
Short |
Nessuna |
S |
Single |
Nessuna |
F o ! |
String |
" |
Nessuna |
Vedere anche
Attività
Procedura: dichiarare una costante
Procedura: dichiarare le enumerazioni
Concetti
Cenni preliminari sulle costanti
Cenni preliminari sulle enumerazioni
Qualifica di nomi ed enumerazioni
Enumerazioni e costanti intrinseche