Konstanta och literala datatyper (Visual Basic)
En literal är ett värde som uttrycks som sig själv i stället för som en variabels värde eller resultatet av ett uttryck, till exempel talet 3 eller strängen "Hello". En konstant är ett meningsfullt namn som ersätter en literal och behåller samma värde i hela programmet, till skillnad från en variabel, vars värde kan ändras.
När Alternativ härledning är Off
och Alternativet Strikt är On
måste du deklarera alla konstanter explicit med en datatyp. I följande exempel deklareras datatypen för MyByte
explicit som datatyp Byte
:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
När Option Infer
är On
eller Option Strict
är Off
kan du deklarera en konstant utan att ange en datatyp med en As
sats. Kompilatorn avgör typen av konstant från typen av uttryck. En numerisk heltalsliteral omvandlas som standard till Integer
datatypen. Standarddatatypen för flyttalsnummer är Double
, och nyckelorden True
och False
anger en Boolean
konstant.
Literaler och typtvång
I vissa fall kanske du vill framtvinga en literal till en viss datatyp. När du till exempel tilldelar ett särskilt stort integralliteralt värde till en variabel av typen Decimal
. Följande exempel genererar ett fel:
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
Felet beror på representationen av literalen. Datatypen Decimal
kan innehålla ett så här stort värde, men literalen representeras implicit som en Long
, vilket inte kan.
Du kan tvinga en literal till en viss datatyp på två sätt: genom att lägga till ett typtecken i den eller genom att placera den inom omslutande tecken. Ett typtecken eller omslutande tecken måste omedelbart föregå och/eller följa literalen, utan mellanliggande blanksteg eller tecken av något slag.
Om du vill att föregående exempel ska fungera kan du lägga till D
typtecknet i literalen, vilket gör att det representeras som :Decimal
Dim MyDecimal As Decimal = 100000000000000000000D
I följande exempel visas korrekt användning av typtecken och omslutande tecken:
' 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!
I följande tabell visas de omslutande tecknen och typtecken som är tillgängliga i Visual Basic.
Datatyp | Omslutande tecken | Tecken av bifogad typ |
---|---|---|
Boolean |
(inget) | (inget) |
Byte |
(inget) | (inget) |
Char |
" | C |
Date |
# | (inget) |
Decimal |
(inget) | D eller @ |
Double |
(inget) | R eller # |
Integer |
(inget) | I eller % |
Long |
(inget) | L eller & |
Short |
(inget) | S |
Single |
(inget) | F eller ! |
String |
" | (inget) |