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, Statici ReadOnly. 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 datatypewartości , stała przyjmuje typ initializerdanych . Jeśli określisz wartości i datatypeinitializer, typ initializer danych musi być konwertowany na datatypewartość . Jeśli ani datatypeinitializer nie istnieje, typ danych jest domyślnie ustawiona na Object.

  • 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 common As .

  • 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 jak CByte i CShort. Można również użyć AscW metody w przypadku wywołania jej ze stałą String lub Char 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.

  • Kwalifikacji. 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.

Zobacz też