Condividi tramite


Tipi di dati costanti e letterali (Visual Basic)

Un valore letterale è un valore espresso come se stesso anziché come valore di una variabile o il 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, anziché 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 Bytedati :

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. Viene effettuato il cast di un letterale numerico intero al tipo di dati Integer per impostazione predefinita. Il tipo di dati predefinito per i numeri a virgola mobile è Doublee le parole chiave True e False specificano una Boolean costante.

Valori letterali e coercizione dei tipi

In alcuni casi, è possibile forzare un valore letterale a 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 genera un errore:

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

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

È possibile forzare un valore letterale a un tipo di dati specifico in due modi: aggiungendo un carattere di tipo o mettendolo tra caratteri delimitatori. Un carattere di tipo o i caratteri di inclusione devono precedere immediatamente e/o seguire il valore letterale, senza spazi o caratteri intermedi di qualsiasi tipo.

Per fare in modo che l'esempio precedente funzioni, è possibile aggiungere il D carattere di tipo al valore letterale, che lo fa rappresentare come Decimal:

Dim MyDecimal As Decimal = 100000000000000000000D

Nell'esempio seguente viene illustrato 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!

Nella tabella seguente vengono illustrati i caratteri di inclusione e i caratteri di tipo disponibili in Visual Basic.

Tipo di dati Carattere delimitatore Carattere di tipo aggiunto
Boolean (nessuno) (nessuno)
Byte (nessuno) (nessuno)
Char " C
Date # (nessuno)
Decimal (nessuno) D o @
Double (nessuno) R o #
Integer (nessuno) Io o %
Long (nessuno) L o &
Short (nessuno) S
Single (nessuno) F o !
String " (nessuno)

Vedere anche