Events
17 Mar, 21 - 21 Mar, 10
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
In addition to specifying a data type in a declaration statement, you can force the data type of some programming elements with a type character. The type character must immediately follow the element, with no intervening characters of any kind.
The type character is not part of the name of the element. An element defined with a type character can be referenced without the type character.
Visual Basic supplies a set of identifier type characters that you can use in a declaration to specify the data type of a variable or constant. The following table shows the available identifier type characters with examples of usage.
Identifier type character | Data type | Example |
---|---|---|
% |
Integer |
Dim L% |
& |
Long |
Dim M& |
@ |
Decimal |
Const W@ = 37.5 |
! |
Single |
Dim Q! |
# |
Double |
Dim X# |
$ |
String |
Dim V$ = "Secret" |
No identifier type characters exist for the Boolean
, Byte
, Char
, Date
, Object
, SByte
, Short
, UInteger
, ULong
, or UShort
data types, or for any composite data types such as arrays or structures.
In some cases, you can append the $
character to a Visual Basic function, for example Left$
instead of Left
, to obtain a returned value of type String
.
In all cases, the identifier type character must immediately follow the identifier name.
A literal is a textual representation of a particular value of a data type.
The form of a literal as it appears in your code ordinarily determines its data type. The following table shows these default types.
Textual form of literal | Default data type | Example |
---|---|---|
Numeric, no fractional part | Integer |
2147483647 |
Numeric, no fractional part, too large for Integer |
Long |
2147483648 |
Numeric, fractional part | Double |
1.2 |
Enclosed in double quotation marks | String |
"A" |
Enclosed within number signs | Date |
#5/17/1993 9:32 AM# |
Visual Basic supplies a set of literal type characters, which you can use to force a literal to assume a data type other than the one its form indicates. You do this by appending the character to the end of the literal. The following table shows the available literal type characters with examples of usage.
Literal type character | Data type | Example |
---|---|---|
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 |
No literal type characters exist for the Boolean
, Byte
, Date
, Object
, SByte
, or String
data types, or for any composite data types such as arrays or structures.
Literals can also use the identifier type characters (%
, &
, @
, !
, #
, $
), as can variables, constants, and expressions. However, the literal type characters (S
, I
, L
, D
, F
, R
, C
) can be used only with literals.
In all cases, the literal type character must immediately follow the literal value.
The compiler normally interprets an integer literal to be in the decimal (base 10) number system. You can also define an integer literal as a hexadecimal (base 16) number with the &H
prefix, as a binary (base 2) number with the &B
prefix, and as an octal (base 8) number with the &O
prefix. The digits that follow the prefix must be appropriate for the number system. The following table illustrates this.
Number base | Prefix | Valid digit values | Example |
---|---|---|---|
Hexadecimal (base 16) | &H |
0-9 and A-F | &HFFFF |
Binary (base 2) | &B |
0-1 | &B01111100 |
Octal (base 8) | &O |
0-7 | &O77 |
Starting in Visual Basic 2017, you can use the underscore character (_
) as a group separator to enhance the readability of an integral literal. The following example uses the _
character to group a binary literal into 8-bit groups:
Dim number As Integer = &B00100010_11000101_11001111_11001101
You can follow a prefixed literal with a literal type character. The following example shows this.
Dim counter As Short = &H8000S
Dim flags As UShort = &H8000US
In the previous example, counter
has the decimal value of -32768, and flags
has the decimal value of +32768.
Starting with Visual Basic 15.5, you can also use the underscore character (_
) as a leading separator between the prefix and the hexadecimal, binary, or octal digits. For example:
Dim number As Integer = &H_C305_F860
To use the underscore character as a leading separator, you must add the following element to your Visual Basic project (*.vbproj) file:
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
For more information see Select the Visual Basic language version.
.NET feedback
.NET is an open source project. Select a link to provide feedback:
Events
17 Mar, 21 - 21 Mar, 10
Join the meetup series to build scalable AI solutions based on real-world use cases with fellow developers and experts.
Register nowTraining
Module
Choose the correct data type in your C# code - Training
Choose the correct data type for your code from several basic types used in C#.
Documentation
String Data Type - Visual Basic
Learn more about: String Data Type (Visual Basic)
Learn more about: += Operator (Visual Basic)
Special Characters in Code - Visual Basic
Learn more about: Special Characters in Code (Visual Basic)