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
Shared
všechny konstanty ,Static
aReadOnly
. 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ý typinitializer
. Pokud zadáte obadatatype
ainitializer
, datový typinitializer
musí být konvertibilní nadatatype
. Pokud anidatatype
initializer
není k dispozici, datový typ je výchozí hodnotouObject
.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říkladCByte
aCShort
. Můžete také použítAscW
, pokud ji zavoláte konstantou neboChar
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 Decimal
runtime .
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 ToString Type u objektu vráceného GetType Operator, protože Type nelze převést na String
použití CStr
.