Const – příkaz (Visual Basic)

Deklaruje a definuje jednu nebo více konstant.

Syntaxe

[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist

Součástky

attributelist
Nepovinné. Seznam atributů, které se vztahují na všechny konstanty deklarované v tomto příkazu. Viz seznam atributů v hranatých závorkách ("<" a ">").

accessmodifier
Nepovinné. Tento kód slouží k určení kódu, který má k těmto konstantám přístup. Může to být veřejná, chráněná, přátelská, chráněná, soukromá nebo soukromá ochrana.

Shadows
Nepovinné. Tuto možnost použijte k redeklarování a skrytí programovacího prvku v základní třídě. Podívejte se na stíny.

constantlist
Povinný: Seznam konstant deklarovaných v tomto příkazu

constant [ , constant ... ]

Každá z nich constant má následující syntaxi a části:

constantname [ As datatype ] = initializer

Část Popis
constantname Požadováno. Název konstanty. Viz Deklarované názvy elementů.
datatype Vyžaduje se, pokud Option Strict je On. Datový typ konstanty.
initializer Povinný: Výraz vyhodnocený v době kompilace a přiřazený konstantě.

Poznámky

Pokud máte hodnotu, která se v aplikaci nikdy nezmění, můžete definovat pojmenovanou konstantu a použít ji místo literálové hodnoty. Název je snadněji zapamatovatelné než hodnota. Konstantu můžete definovat jen jednou a použít ji na mnoha místech v kódu. Pokud v novější verzi potřebujete hodnotu předefinovat, je příkaz jediným místem, Const kde je potřeba provést změnu.

Můžete použít Const pouze na úrovni modulu nebo procedury. To znamená, že kontext deklarace proměnné musí být třída, struktura, modul, procedura nebo blok a nesmí být zdrojovým souborem, oborem názvů nebo rozhraním. Další informace naleznete v tématu Kontexty deklarace a výchozí úrovně přístupu.

Místní konstanty (uvnitř procedury) jsou výchozí pro veřejný přístup a v nich nemůžete použít žádné modifikátory přístupu. Konstanty členů třídy a modulu (mimo jakoukoli proceduru) jsou výchozí pro privátní přístup a konstanty členů struktury jsou výchozí pro veřejný přístup. Jejich úrovně přístupu můžete upravit pomocí modifikátorů přístupu.

Pravidla

  • Kontext deklarace Konstanta deklarovaná na úrovni modulu mimo jakoukoli proceduru je členová konstanta; je členem třídy, struktury nebo modulu, který ji deklaruje.

    Konstanta deklarovaná na úrovni procedury je místní konstanta; je místní pro proceduru nebo blok, který ji deklaruje.

  • Atributy. Atributy můžete použít pouze na členské konstanty, ne na místní konstanty. Atribut přispívá k informacím o metadatech sestavení, což není smysluplné pro dočasné úložiště, jako jsou místní konstanty.

  • Modifikátory. Ve výchozím nastavení jsou Sharedvšechny konstanty , Statica ReadOnly. Při deklarování konstanty nelze použít žádná z těchto klíčových slov.

    Na úrovni procedury nemůžete použít Shadows modifikátory přístupu ani deklarovat místní konstanty.

  • Více konstant. Ve stejném příkazu deklarace můžete deklarovat několik konstant, které určují část constantname pro každou z nich. Více konstant je odděleno čárkami.

Pravidla datových typů

  • Datové typy. Příkaz Const může deklarovat datový typ proměnné. Můžete zadat libovolný datový typ nebo název výčtu.

  • Výchozí typ Pokud nezadáte datatype, konstanta přebírá datový typ initializer. Pokud zadáte oba datatype a initializer, datový typ initializer musí být konvertibilní na datatype. Pokud ani datatypeinitializer není k dispozici, datový typ je výchozí hodnotou Object.

  • Různé typy. Pro různé konstanty můžete zadat různé datové typy pomocí samostatné As klauzule pro každou deklarované proměnné. Pomocí společné As klauzule však nelze deklarovat několik konstant, které mají být stejného typu.

  • Inicializace. Je nutné inicializovat hodnotu každé konstanty v constantlist. Slouží initializer k zadání výrazu, který se má přiřadit konstantě. Výraz může být libovolná kombinace literálů, dalších konstant, které jsou již definovány, a členy výčtu, které jsou již definovány. Ke kombinování těchto prvků můžete použít aritmetické a logické operátory.

    Nelze použít proměnné nebo funkce v initializer. Můžete však použít klíčová slova převodu, například CByte a CShort. Můžete také použítAscW, pokud ji zavoláte konstantou nebo Char argumentemString, protože je možné ji vyhodnotit v době kompilace.

Chování

  • Rozsah. Místní konstanty jsou přístupné pouze z jejich procedury nebo bloku. Konstanty členů jsou přístupné odkudkoliv v rámci jejich třídy, struktury nebo modulu.

  • Kvalifikace. Kód mimo třídu, strukturu nebo modul musí kvalifikovat název konstanty člena s názvem této třídy, struktury nebo modulu. Kód mimo proceduru nebo blok nemůže odkazovat na žádné místní konstanty v rámci této procedury nebo bloku.

Příklad 1

Následující příklad používá příkaz Const k deklaraci konstant pro použití místo hodnot literálu.

' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5

Příklad 2

Pokud definujete konstantu s datovým typem Object, kompilátor jazyka Visual Basic mu dává typ initializer, nikoli Object. V následujícím příkladu má konstanta naturalLogBase typ Decimalruntime .

Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
    naturalLogBase.GetType.ToString())

Předchozí příklad používá metodu ToStringType u objektu vráceného GetType Operator, protože Type nelze převést na String použití CStr.

Viz také