Condividi tramite


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

Costanti definite dall'utente

Cenni preliminari sulle costanti

Cenni preliminari sulle enumerazioni

Qualifica di nomi ed enumerazioni

Enumerazioni e costanti intrinseche

Riferimenti

Istruzione Option Strict

Istruzione Option Explicit (Visual Basic)

Riepilogo dei tipi di dati (Visual Basic)