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


Типы константных и литеральных данных (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 " С
Date # (нет)
Decimal (нет) D или @
Double (нет) R или #
Integer (нет) Я или %
Long (нет) L или &
Short (нет) С
Single (нет) F или !
String " (нет)

См. также