Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Deklaruje i definiuje jedną lub więcej stałych.
Składnia
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Części
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
To jest wymagane. 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
| Część | Opis |
|---|---|
constantname |
To jest wymagane. Nazwa stałej. Zobacz Nazwy zadeklarowanych elementów. |
datatype |
Wymagane, jeśli Option Strict ma wartość On. Typ danych stałej. |
initializer |
To jest wymagane. 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 go deklaruje.
Stała zadeklarowana na poziomie procedury jest stałą lokalną; jest on lokalny dla procedury lub bloku, który 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,StaticiReadOnly. Podczas deklarowania stałej nie można użyć żadnego z tych słów kluczowych.Na poziomie procedury nie można używać
Shadowsani ż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
constantnameczęść dla każdego z nich. Wiele stałych jest rozdzielonych przecinkami.
Reguły typów danych
Typy danych. Instrukcja
Constmoże zadeklarować typ danych zmiennej. Można określić dowolny typ danych lub nazwę wyliczenia.Typ domyślny. Jeśli nie określisz
datatypewartości , stała przyjmuje typinitializerdanych . Jeśli określisz wartości idatatypeinitializer, typinitializerdanych musi być konwertowany nadatatypewartość . Jeśli anidatatypeinitializernie 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
Asklauzuli dla każdej zadeklarowanej zmiennej. Nie można jednak zadeklarować kilku stałych o tym samym typie przy użyciu klauzuli commonAs.Inicjalizacja. Należy zainicjować wartość każdej stałej w pliku
constantlist.initializerSł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 jakCByteiCShort. Można również użyćAscWmetody w przypadku wywołania jej ze stałąStringlubCharargumentem, 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 Objectdanych , kompilator języka Visual Basic nadaje mu typ initializer, a nie Object. W poniższym przykładzie stała naturalLogBase ma typ Decimalczasu 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.