Поделиться через


Типы данных констант и литералов

Обновлен: Ноябрь 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

"

(отсутствует)

См. также

Задачи

Практическое руководство. Объявление константы

Практическое руководство. Объявление перечисления

Основные понятия

Константы, определенные пользователем

Общие сведения о константах

Общие сведения о перечислениях

Перечисления и уточнение имен

Встроенные константы и перечисления

Ссылки

Оператор Option Strict

Оператор Option Explicit (Visual Basic)

Сводка типов данных (Visual Basic)