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


Символы типов (Visual Basic)

Помимо указания типа данных в операторе объявления, можно задать тип данных отдельных элементов программирования при помощи символа типа. Символ типа должен непосредственно следовать за элементом без каких-либо промежуточных символов.

Символ типа не является частью имени элемента. Элемент, определенный символом типа, можно ссылаться без символа типа.

Символы, обозначающие тип идентификатора

Visual Basic предоставляет набор символов типа идентификатора , которые можно использовать в объявлении для указания типа данных переменной или константы. В следующей таблице показаны доступные символы типа идентификатора с примерами использования.

Символ типа идентификатора Тип данных Пример
% Integer Dim L%
& Long Dim M&
@ Decimal Const W@ = 37.5
! Single Dim Q!
# Double Dim X#
$ String Dim V$ = "Secret"

Для типов данных Boolean, Byte, Char, Date, Object, SByte, Short, UInteger, ULong или UShort не существуют символы типа идентификатора, а также для составных типов данных, таких как массивы или структуры.

В некоторых случаях можно добавить символ $ к функции Visual Basic, например, Left$ вместо Left, чтобы получить возвращаемое значение типа String.

Во всех случаях символ типа идентификатора должен немедленно следовать имени идентификатора.

Символы литерального типа

Литерал — это текстовое представление определенного значения типа данных.

Типы литералов по умолчанию

Форма литерала, как она отображается в коде, обычно определяет его тип данных. В следующей таблице показаны эти типы по умолчанию.

Текстовая форма литерала Тип данных по умолчанию Пример
Числовой, без дробной части Integer 2147483647
Числовой, без дробной части, слишком большой для Integer Long 2147483648
Числовая, дробная часть Double 1.2
Заключено в двойные кавычки String "A"
Заключено в знаки числа Date #5/17/1993 9:32 AM#

Принудительные литеральные типы

Visual Basic предоставляет набор литеральных типов символов, которые можно использовать, чтобы заставить литерал принять другой тип данных, отличный от того, который подразумевается его формой. Для этого добавьте символ в конец строкового литерала. В следующей таблице показаны доступные символы литерального типа с примерами использования.

Символ литерального типа Тип данных Пример
S Short I = 347S
I Integer J = 347I
L Long K = 347L
D Decimal X = 347D
F Single Y = 347F
R Double Z = 347R
US UShort L = 347US
UI UInteger M = 347UI
UL ULong N = 347UL
C Char Q = "."C

Символы литерального типа не существуют для Booleanтипов данных , ,Byte, DateObjectSByteили String для любых составных типов данных, таких как массивы или структуры.

Литералы также могут использовать символы типа идентификатора (%, &, @, !, #, $), как и переменные, константы и выражения. Однако символы литерального типа (S, I, L, D, F, R, C) можно использовать только с литералами.

Во всех случаях символ литерального типа должен следовать сразу за литеральным значением.

Шестнадцатеричные, двоичные и восьмимерные литералы

Компилятор обычно интерпретирует целочисленный литерал в десятичной системе счисления, основанной на 10. Можно также определить целочисленный литерал как шестнадцатеричное (базовое 16) число с &H префиксом, как двоичное (базовое 2) число с &B префиксом и как восьмеричный (базовый 8) номер с &O префиксом. Цифры, следующие за префиксом, должны соответствовать системе нумерации. В следующей таблице показано это.

База чисел Приставка Допустимые значения цифр Пример
Шестнадцатеричная система (основание 16) &H 0-9 и A-F &HFFFF
Двоичная (основание 2) &B 0-1 &B01111100
Восьмерий (база 8) &O 0-7 &O77

Начиная с версии Visual Basic 2017, можно использовать символ подчеркивания (_) в качестве разделителя групп, чтобы повысить удобочитаемость целочисленного литерала. В следующем примере используется символ _ для группировки двоичного литерала в 8-разрядные группы.

Dim number As Integer = &B00100010_11000101_11001111_11001101

Префиксный литерал может сопровождаться символом, определяющим его тип. В следующем примере показано следующее.

Dim counter As Short = &H8000S
Dim flags As UShort = &H8000US

В предыдущем примере counter имеет десятичное значение -32768 и flags имеет десятичное значение +32768.

Начиная с Visual Basic 15.5, можно также использовать символ подчеркивания (_) в качестве ведущего разделителя между префиксом и шестнадцатеричными, двоичными или восьмизначными цифрами. Рассмотрим пример.

Dim number As Integer = &H_C305_F860

Чтобы использовать символ подчеркивания в качестве ведущего разделителя, необходимо добавить следующий элемент в файл проекта Visual Basic (*.vbproj):

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Дополнительные сведения см. в разделе "Выбор версии языка Visual Basic".

См. также