Udostępnij za pośrednictwem


Typy znaków (Visual Basic)

Oprócz określania typu danych w instrukcji deklaracji można wymusić typ danych niektórych elementów programowania za pomocą znaku typu. Znak typu musi natychmiast następować po elemencie bez żadnych znaków między nimi.

Znak typu nie jest częścią nazwy elementu. Element zdefiniowany za pomocą znaku typu można odwoływać się bez znaku typu.

Znaki typu identyfikatora

Visual Basic dostarcza zestaw znaków typu identyfikatora , których można użyć w deklaracji, aby określić typ danych zmiennej lub stałej. W poniższej tabeli przedstawiono dostępne znaki typu identyfikatora z przykładami użycia.

Znak określający typ identyfikatora Typ danych Przykład
% Integer Dim L%
& Long Dim M&
@ Decimal Const W@ = 37.5
! Single Dim Q!
# Double Dim X#
$ String Dim V$ = "Secret"

Dla typów danych takich jak Boolean, Byte, Char, Date, Object, SByte, Short, UInteger, ULong, UShort, lub dla jakichkolwiek złożonych typów danych, takich jak tablice lub struktury, nie istnieją żadne znaki typu identyfikatora.

W niektórych przypadkach można dołączyć $ znak do funkcji Języka Visual Basic, na przykład Left$ zamiast Left, aby uzyskać zwracaną wartość typu String.

We wszystkich przypadkach znak typu identyfikatora musi natychmiast podążać za nazwą identyfikatora.

Znaki typu dosłownego

Literał to tekstowa reprezentacja konkretnej wartości typu danych.

Domyślne typy literałów

Forma literału, w takiej postaci, w jakiej występuje w kodzie, zwykle określa jego typ danych. W poniższej tabeli przedstawiono te typy domyślne.

Tekstowa forma literału Domyślny typ danych Przykład
Numeryczne, bez części ułamkowej Integer 2147483647
Liczba, brak części ułamkowej, zbyt duża dla Integer Long 2147483648
Część liczbowa, ułamkowa Double 1.2
Ujęte w znaki podwójnego cudzysłowu String "A"
Ujęte w znaki liczbowe Date #5/17/1993 9:32 AM#

Narzucone typy literałów

Język Visual Basic udostępnia zestaw znaków typu literału, których można użyć, aby wymusić, że literał przyjmie typ danych inny niż wskazuje jego forma. W tym celu należy dołączyć znak na końcu literału. W poniższej tabeli przedstawiono dostępne znaki reprezentujące typy literałów z przykładami użycia.

Znak oznaczający typ literału Typ danych Przykład
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

Nie istnieją znaki typu literału dla typów danych Boolean, Byte, Date, Object, SByte lub String, ani dla jakichkolwiek złożonych typów danych, takich jak tablice czy struktury.

Literały mogą również używać znaków typu identyfikatora (%, &, @, !, #, $), podobnie jak zmienne, stałe i wyrażenia. Jednak znaki typu literałów (S, I, L, D, F, R, C) mogą być używane tylko z literałami.

We wszystkich przypadkach znak typu literału musi natychmiast podążać za wartością literału.

Literały szesnastkowe, binarne i ósemkowe

Kompilator zazwyczaj interpretuje literał liczby całkowitej jako zapisany w systemie dziesiętnym (podstawa 10). Można również zdefiniować literał liczby całkowitej jako liczbę szesnastkową (podstawową 16) z &H prefiksem jako liczbę binarną (podstawową 2) z &B prefiksem oraz jako liczbę ósemkową (podstawową 8) z prefiksem &O . Cyfry, które następują po prefiksie, muszą być odpowiednie dla systemu liczbowego. Poniższa tabela ilustruje to.

Podstawa liczbowa Prefiks Prawidłowe wartości cyfr Przykład
System szesnastkowy (podstawa 16) &H 0-9 i A-F &HFFFF
Binarny (podstawowy 2) &B 0-1 &B01111100
System ósemkowy (podstawa 8) &O 0-7 &O77

Począwszy od języka Visual Basic 2017, możesz użyć znaku podkreślenia (_) jako separatora grup, aby zwiększyć czytelność literału całkowitego. W poniższym przykładzie użyto _ znaku do grupowania literału binarnego w grupy 8-bitowe:

Dim number As Integer = &B00100010_11000101_11001111_11001101

Możesz podążać za prefiksem literału z znakiem typu literału. W poniższym przykładzie pokazano to.

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

W poprzednim przykładzie counter ma wartość dziesiętną -32768 i flags ma wartość dziesiętną +32768.

Począwszy od języka Visual Basic 15.5, można również użyć znaku podkreślenia (_) jako separatora wiodącego między prefiksem a cyframi szesnastkowymi, binarnymi lub ósemkowymi. Przykład:

Dim number As Integer = &H_C305_F860

Aby użyć znaku podkreślenia jako separatora wiodącego, należy dodać następujący element do pliku projektu Visual Basic (*.vbproj):

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

Aby uzyskać więcej informacji, zobacz Wybieranie wersji języka Visual Basic.

Zobacz także