Типы данных констант и литералов
Обновлен: Ноябрь 2007
Литерал представляет собой значение, выраженное самостоятельно, а не в качестве значения переменной или результата вычисления выражения, например число 3 или строка "Hello". Константа представляет собой значимое имя, замещающее литерал и сохраняющее одно и то же значение на протяжении всей программы в отличие от переменных, которые могут изменяться.
Если Option Strict имеет значение On, необходимо объявлять все константы явным образом с указанием типа данных. В следующем примере тип данных константы MyByte явным образом объявлен как Byte:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Объявленные явным образом типы данных исключают неоднозначность и, кроме того, типизированный код легче читать, чем нетипизированный. Однако, если Option Strict имеет значение Off, в компиляторе используется тип выражения, применяемый для инициализации константы. Целочисленный литерал по умолчанию приводится к типу данных Integer. По умолчанию для чисел с плавающей запятой используется тип данных Double, а ключевые слова True и False определяют константу типа Boolean.
Литералы и приведение типов
В некоторых случаях требуется выполнить принудительное приведение литерала к определенному типу данных, например, при назначении особо большого целочисленного значения литерала переменной типа Decimal. В результате следующего примера получается ошибка:
Dim myDecimal as Decimal
myDecimal = 100000000000000000000 ' This causes a compiler error.
Эта ошибка появляется из-за представления литерала. Тип данных Decimal может содержать значение такой величины, но литерал неявным образом представлен как тип Long, который не имеет такой возможности.
Приведение литерала к определенному типу данных осуществляется двумя способами: путем добавления к литералу символа типа либо путем заключения его между окружающими символами. Символ типа или окружающие символы должны непосредственно предшествовать литералу и/или следовать за ним без каких-либо промежуточных пробелов или символов.
Чтобы предыдущий пример работал, добавьте к литералу символ типа D, чтобы он был представлен как Decimal:
Dim MyDecimal As Decimal = 100000000000000000000D
В следующем примере показано правильное использование символов типа и окружающих символов:
' 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!
В приведенной ниже таблице показаны окружающие символы и символы типов, доступные в Visual Basic.
Тип данных |
Окружающий символ |
Добавленный символ типа |
---|---|---|
Boolean |
(отсутствует) |
(отсутствует) |
Byte |
(отсутствует) |
(отсутствует) |
Char |
" |
C |
Date |
# |
(отсутствует) |
Decimal |
(отсутствует) |
D или @ |
Double |
(отсутствует) |
R или # |
Integer |
(отсутствует) |
I или % |
Long |
(отсутствует) |
L или & |
Short |
(отсутствует) |
S |
Single |
(отсутствует) |
F или ! |
String |
" |
(отсутствует) |
См. также
Задачи
Практическое руководство. Объявление константы
Практическое руководство. Объявление перечисления
Основные понятия
Константы, определенные пользователем
Общие сведения о перечислениях
Встроенные константы и перечисления