Типы данных констант и литералов (Visual Basic)
Литерал представляет собой значение, выраженное самостоятельно, а не в качестве значения переменной или результата вычисления выражения, например число 3 или строка "Hello". Константа представляет собой значимое имя, замещающее литерал и сохраняющее одно и то же значение на протяжении всей программы в отличие от переменных, которые могут изменяться.
Если параметру Option Infer присвоено значение Off, а параметру Option Strict — значение On, необходимо явно объявить все константы с использованием типа данных. В следующем примере тип данных константы MyByte явным образом объявлен как Byte:
Option Strict On
Public Class Sample
Public Const MyByte As Byte = 2
End Class
Если параметру Option Infer присвоено значение On или параметру Option Strict — значение Off, можно объявить константу, не задавая тип данных с предложением As. Компилятор определяет тип константы по типу выражения. Целочисленный литерал по умолчанию приводится к типу данных 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 |
" |
(нет) |
См. также
Задачи
Практическое руководство. Объявление константы (Visual Basic)
Практическое руководство. Объявление перечисления (Visual Basic)
Ссылки
Оператор Option Explicit (Visual Basic)
Сводка типов данных (Visual Basic)
Основные понятия
Константы, определенные пользователем (Visual Basic)
Общие сведения о константах (Visual Basic)
Общие сведения о перечислениях (Visual Basic)
Перечисления и уточнение имен (Visual Basic)
Константы и перечисления (Visual Basic)
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Май 2011 |
Изменены сведения об определении типа. |
Исправление ошибки содержимого. |