Const — Instrukcja (Visual Basic)
Deklaruje i definiuje jedną lub więcej stałych.
Składnia
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
generatora
attributelist
Opcjonalny. Lista atrybutów, które mają zastosowanie do wszystkich stałych zadeklarowanych w tej instrukcji. Zobacz Lista atrybutów w nawiasach kątowych ("<
" i ">
").
accessmodifier
Opcjonalny. Służy do określania, jaki kod może uzyskiwać dostęp do tych stałych. Może być publiczny, chroniony, przyjaciel, chroniony przyjaciel, prywatny lub prywatny.
Shadows
Opcjonalny. Użyj tego polecenia, aby ponownie zadeklarować i ukryć element programowania w klasie bazowej. Zobacz Cienie.
constantlist
Wymagany. Lista stałych zadeklarowanych w tej instrukcji.
constant
[ ,
constant
... ]
Każda z nich constant
ma następującą składnię i części:
constantname
[ As
datatype
] =
initializer
Element | opis |
---|---|
constantname |
Wymagane. Nazwa stałej. Zobacz Nazwy zadeklarowanych elementów. |
datatype |
Wymagane, jeśli Option Strict ma wartość On . Typ danych stałej. |
initializer |
Wymagany. Wyrażenie obliczane w czasie kompilacji i przypisane do stałej. |
Uwagi
Jeśli masz wartość, która nigdy nie zmienia się w aplikacji, możesz zdefiniować nazwę stałej i użyć jej zamiast wartości literału. Nazwa jest łatwiejsza do zapamiętania niż wartość. Możesz zdefiniować stałą tylko raz i użyć jej w wielu miejscach w kodzie. Jeśli w nowszej wersji musisz ponownie zdefiniować wartość, instrukcja jest jedynym miejscem, Const
w którym należy wprowadzić zmianę.
Można użyć Const
tylko na poziomie modułu lub procedury. Oznacza to, że kontekst deklaracji zmiennej musi być klasą, strukturą, modułem, procedurą lub blokiem i nie może być plikiem źródłowym, przestrzenią nazw lub interfejsem. Aby uzyskać więcej informacji, zobacz Konteksty deklaracji i Domyślne poziomy dostępu.
Stałe lokalne (wewnątrz procedury) są domyślne dla dostępu publicznego i nie można na nich używać żadnych modyfikatorów dostępu. Stałe składowe klasy i modułu (poza dowolną procedurą) domyślne dla dostępu prywatnego i stałe składowych struktury domyślnie do dostępu publicznego. Możesz dostosować ich poziomy dostępu za pomocą modyfikatorów dostępu.
Reguły
Kontekst deklaracji. Stała zadeklarowana na poziomie modułu, poza dowolną procedurą, jest stałą składową; jest elementem członkowskim klasy, struktury lub modułu, który ją deklaruje.
Stała zadeklarowana na poziomie procedury jest stałą lokalną; jest lokalna dla procedury lub bloku, która ją deklaruje.
Atrybuty. Atrybuty można stosować tylko do stałych składowych, a nie do stałych lokalnych. Atrybut współtworzy informacje o metadanych zestawu, które nie są istotne dla magazynu tymczasowego, takiego jak stałe lokalne.
Modyfikatorów. Domyślnie wszystkie stałe to
Shared
,Static
iReadOnly
. Podczas deklarowania stałej nie można użyć żadnego z tych słów kluczowych.Na poziomie procedury nie można używać
Shadows
ani żadnych modyfikatorów dostępu do deklarowania stałych lokalnych.Wiele stałych. Można zadeklarować kilka stałych w tej samej instrukcji deklaracji, określając
constantname
część dla każdego z nich. Wiele stałych jest rozdzielonych przecinkami.
Reguły typów danych
Typy danych. Instrukcja
Const
może zadeklarować typ danych zmiennej. Można określić dowolny typ danych lub nazwę wyliczenia.Typ domyślny. Jeśli nie określisz
datatype
wartości , stała przyjmuje typinitializer
danych . Jeśli określisz wartości idatatype
initializer
, typinitializer
danych musi być konwertowany nadatatype
wartość . Jeśli anidatatype
initializer
nie istnieje, typ danych jest domyślnie ustawiona naObject
.Różne typy. Można określić różne typy danych dla różnych stałych przy użyciu oddzielnej
As
klauzuli dla każdej zadeklarowanej zmiennej. Nie można jednak zadeklarować kilku stałych o tym samym typie przy użyciu klauzuli commonAs
.Inicjowania. Należy zainicjować wartość każdej stałej w pliku
constantlist
.initializer
Służy do podawania wyrażenia, które ma zostać przypisane do stałej. Wyrażenie może być dowolną kombinacją literałów, innych stałych, które są już zdefiniowane, i składowych wyliczenia, które są już zdefiniowane. Aby połączyć takie elementy, można użyć operatorów arytmetycznych i logicznych.Nie można używać zmiennych ani funkcji w programie
initializer
. Można jednak użyć słów kluczowych konwersji, takich jakCByte
iCShort
. Można również użyćAscW
metody w przypadku wywołania jej ze stałąString
lubChar
argumentem, ponieważ można ją ocenić w czasie kompilacji.
Zachowanie
Zakres. Stałe lokalne są dostępne tylko z poziomu procedury lub bloku. Stałe składowe są dostępne z dowolnego miejsca w swojej klasie, strukturze lub module.
Kwalifikacja. Kod poza klasą, strukturą lub modułem musi kwalifikować nazwę stałej składowej o nazwie tej klasy, struktury lub modułu. Kod poza procedurą lub blokiem nie może odwoływać się do żadnych lokalnych stałych w ramach tej procedury lub bloku.
Przykład 1
W poniższym przykładzie użyto instrukcji , Const
aby zadeklarować stałe do użycia zamiast wartości literału.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Przykład 2
Jeśli zdefiniujesz stałą z typem Object
danych , kompilator języka Visual Basic nadaje mu typ initializer
, a nie Object
. W poniższym przykładzie stała naturalLogBase
ma typ Decimal
czasu wykonywania .
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
W poprzednim przykładzie użyto ToString metody dla obiektu zwróconego Type przez operator GetType, ponieważ Type nie można przekonwertować na String
przy użyciu metody CStr
.