Megosztás a következőn keresztül:


Const utasítás (Visual Basic)

Deklarál és definiál egy vagy több állandót.

Syntax

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

Részek

attributelist
Opcionális. Az ebben az utasításban deklarált összes állandóra vonatkozó attribútumok listája. Lásd az attribútumlistát szögletes zárójelekben ("<" és ">").

accessmodifier
Opcionális. Ezzel megadhatja, hogy milyen kód férhet hozzá ezekhez az állandókhoz. Lehet nyilvános, védett, barát, védett barát, privát vagy privát védelem.

Shadows
Opcionális. Ezzel újraklarálhatja és elrejtheti egy programozási elemet egy alaposztályban. Lásd: Árnyékok.

constantlist
Szükséges. Az ebben az utasításban deklarált állandók listája.

constant [ , constant ... ]

Mindegyik constant a következő szintaxist és részeket tartalmazza:

constantname [ As datatype ] = initializer

Rész Leírás
constantname Szükséges. Az állandó neve. Lásd: Deklarált elemnevek.
datatype Ha igen, akkor Option Strict kötelező Onmegadni. Az állandó adattípusa.
initializer Szükséges. A fordításkor kiértékelt és az állandóhoz rendelt kifejezés.

Megjegyzések

Ha olyan értékkel rendelkezik, amely soha nem változik az alkalmazásban, definiálhat egy elnevezett állandót, és konstansérték helyett használhatja azt. A nevek könnyebben megjegyezhetők, mint egy érték. Az állandót csak egyszer definiálhatja, és számos helyen használhatja a kódban. Ha egy későbbi verzióban újra kell definiálnia az értéket, az Const utasítás az egyetlen hely, ahol módosítania kell.

Csak modul- vagy eljárásszinten használható Const . Ez azt jelenti, hogy egy változó deklarációs környezetének osztálynak, struktúrának, modulnak, eljárásnak vagy blokknak kell lennie, és nem lehet forrásfájl, névtér vagy felület. További információ: Deklarációs környezetek és alapértelmezett hozzáférési szintek.

A helyi állandók (egy eljáráson belül) alapértelmezés szerint nyilvános hozzáférést biztosítanak, és nem használhatja rajtuk a hozzáférési módosítókat. Az osztály- és modultag-állandók (az eljáráson kívül) alapértelmezés szerint a privát hozzáféréshez, a struktúratag-állandók pedig alapértelmezés szerint a nyilvános hozzáféréshez. A hozzáférési szinteket a hozzáférési módosítókkal módosíthatja.

Szabályok

  • Deklarációs környezet. A modul szintjén deklarált állandó bármely eljáráson kívül tagállandó; a deklarált osztály, struktúra vagy modul tagja.

    Az eljárás szintjén deklarált állandó helyi állandó; az azt deklaráló eljárás vagy blokk helyi értéke.

  • Attribútumok. Attribútumokat csak tagállandókra alkalmazhat, helyi állandókra nem. Az attribútumok információkat adnak hozzá a szerelvény metaadataihoz, ami nem értelmezhető az ideiglenes tárolás, például a helyi állandók esetében.

  • Módosítók. Alapértelmezés szerint az összes állandó az Shared, Staticés ReadOnly. Konstans deklarálásakor ezek közül a kulcsszavak közül egyik sem használható.

    Eljárásszinten a helyi állandók deklarálásához nem használhat Shadows hozzáférési módosítókat vagy hozzáférési módosítókat.

  • Több állandó. Ugyanabban a deklarációs utasításban több állandót is deklarálhat, és mindegyikhez megadhatja a constantname részt. Több állandót vessző választ el egymástól.

Adattípus-szabályok

  • Adattípusok. Az Const utasítás deklarálhatja egy változó adattípusát. Bármilyen adattípust vagy enumerálás nevét megadhatja.

  • Alapértelmezett típus. Ha nem adja meg datatype, az állandó a következő adattípust initializerveszi fel: . Ha mindkettőt datatype initializermegadja, az adattípusnak initializer konvertálhatónak datatypekell lennie. Ha egyik sem datatype initializer jelenik meg, az adattípus alapértelmezés szerint a következő lesz Object: .

  • Különböző típusok. Különböző adattípusokat adhat meg a különböző állandókhoz, ha minden egyes deklarált változóhoz külön As záradékot használ. Egy közös As záradék használatával azonban nem deklarálhat több azonos típusú állandót.

  • Inicializálás. Inicializálnia kell az összes konstans értékét a következőben constantlist: . A konstanshoz hozzárendelendő kifejezés megadására használható initializer . A kifejezés lehet a konstansok, a már definiált egyéb állandók és a már definiált tagok számbavétele. Ezeket az elemeket számtani és logikai operátorokkal kombinálhatja.

    Nem használhat változókat vagy függvényeket a következőben initializer: . Azonban használhat konverziós kulcsszavakat, például CByte és CShort. Használhatja azt is AscW , ha állandóval String vagy Char argumentummal hívja meg, mivel ez a fordítási időpontban kiértékelhető.

Működés

  • Hatály. A helyi állandók csak a saját eljárásukból vagy blokkjukból érhetők el. A tagállandók az osztályukon, struktúrájukon vagy moduljukon belül bárhonnan elérhetők.

  • Minősítés. Az osztályon, struktúrán vagy modulon kívüli kódnak az adott osztály, struktúra vagy modul nevével kell minősítenie egy tagállandó nevét. Az eljáráson vagy blokkon kívüli kód nem hivatkozhat az adott eljárás vagy blokk helyi állandóira.

1. példa

Az alábbi példa az utasítást használja konstansok Const deklarálásához a literális értékek helyett.

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

2. példa

Ha egy adattípussal Objectrendelkező állandót határoz meg, a Visual Basic fordító a helyett a típust initializerObjectadja meg. Az alábbi példában az állandó naturalLogBase futási idő típusú Decimal.

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

Az előző példa a ToString GetType operátor által visszaadott objektum metódusát Type használja, mert Type nem konvertálható String a használatávalCStr.

Lásd még