Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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) |