Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dichiara e definisce una o più costanti.
Sintassi
[ <attributelist> ] [ accessmodifier ] [ Shadows ]
Const constantlist
Parti
attributelist
Opzionale. Elenco di attributi applicabili a tutte le costanti dichiarate in questa istruzione. Vedere Elenco di attributi tra parentesi angolari ("<" e ">").
accessmodifier
Opzionale. Usare questa opzione per specificare il codice che può accedere a queste costanti. Può essere Public, Protected, Friend, Protected Friend, Private o Private Protected.
Shadows
Opzionale. Usare questa opzione per ripetere e nascondere un elemento di programmazione in una classe di base. Vedi Ombre.
constantlist
Obbligatorio. Elenco di costanti dichiarate in questa istruzione.
constant
[ ,
constant
... ]
Ognuno constant ha la sintassi e le parti seguenti:
constantname
[ As
datatype
] =
initializer
| Parte | Descrizione |
|---|---|
constantname |
Obbligatorio. Nome della costante. Vedere Nomi di elementi dichiarati. |
datatype |
Richiesto se Option Strict è On. Tipo di dati della costante. |
initializer |
Obbligatorio. Espressione valutata in fase di compilazione e assegnata alla costante . |
Osservazioni:
Se si ha un valore che non cambia mai nell'applicazione, è possibile definire una costante denominata e usarla al posto di un valore letterale. Un nome è più facile da ricordare rispetto a un valore. È possibile definire la costante una sola volta e usarla in molte posizioni nel codice. Se in una versione successiva è necessario ridefinire il valore, l'istruzione è l'unica Const posizione in cui è necessario apportare una modifica.
È possibile usare Const solo a livello di modulo o routine. Ciò significa che il contesto di dichiarazione per una variabile deve essere una classe, una struttura, un modulo, una routine o un blocco e non può essere un file di origine, uno spazio dei nomi o un'interfaccia. Per altre informazioni, vedere Contesti di dichiarazione e livelli di accesso predefiniti.
Le costanti locali (all'interno di una routine) vengono usate per impostazione predefinita per l'accesso pubblico e non è possibile usare modificatori di accesso. Per impostazione predefinita, le costanti membro della classe e del modulo (all'esterno di qualsiasi routine) sono l'accesso privato e per impostazione predefinita le costanti membro della struttura sono l'accesso pubblico. È possibile regolare i livelli di accesso con i modificatori di accesso.
Regole
Contesto della dichiarazione. Una costante dichiarata a livello di modulo, all'esterno di qualsiasi routine, è una costante membro; è un membro della classe, della struttura o del modulo che lo dichiara.
Una costante dichiarata a livello di procedura è una costante locale; è locale per la routine o il blocco che lo dichiara.
Attributi. È possibile applicare attributi solo alle costanti membro, non alle costanti locali. Un attributo contribuisce a ottenere informazioni sui metadati dell'assembly, che non sono significativi per l'archiviazione temporanea, ad esempio le costanti locali.
Modificatori. Per impostazione predefinita, tutte le costanti sono
Shared,StaticeReadOnly. Non è possibile usare una di queste parole chiave quando si dichiara una costante.A livello di procedura, non è possibile usare
Shadowso modificare i modificatori di accesso per dichiarare costanti locali.Più costanti. È possibile dichiarare più costanti nella stessa istruzione di dichiarazione, specificando la
constantnameparte per ognuna di esse. Più costanti sono separate da virgole.
Regole del tipo di dati
Tipi di dati. L'istruzione
Constpuò dichiarare il tipo di dati di una variabile. È possibile specificare qualsiasi tipo di dati o il nome di un'enumerazione.Tipo predefinito. Se non si specifica
datatype, la costante accetta il tipo di dati .initializerSe si specificano siadatatypecheinitializer, il tipo di dati diinitializerdeve essere convertibile indatatype. Se nédatatypenéinitializerè presente, per impostazione predefinita il tipo di dati èObject.Tipi diversi. È possibile specificare tipi di dati diversi per costanti diverse usando una clausola separata
Asper ogni variabile dichiarata. Tuttavia, non è possibile dichiarare più costanti nello stesso tipo usando una clausola comuneAs.Inizializzazione. È necessario inizializzare il valore di ogni costante in
constantlist.initializerUsare per fornire un'espressione da assegnare alla costante . L'espressione può essere qualsiasi combinazione di valori letterali, altre costanti già definite e membri di enumerazione già definiti. È possibile usare operatori aritmetici e logici per combinare tali elementi.Non è possibile usare variabili o funzioni in
initializer. Tuttavia, è possibile usare parole chiave di conversione comeCByteeCShort. È anche possibile usareAscWse viene chiamato con una costanteStringoCharun argomento, perché può essere valutato in fase di compilazione.
Comportamento
Ambito. Le costanti locali sono accessibili solo dall'interno della relativa routine o blocco. Le costanti membro sono accessibili ovunque all'interno della classe, della struttura o del modulo.
Qualificazione. Il codice esterno a una classe, una struttura o un modulo deve qualificare il nome di una costante membro con il nome di tale classe, struttura o modulo. Il codice all'esterno di una routine o di un blocco non può fare riferimento a alcuna costante locale all'interno di tale routine o blocco.
Esempio 1
Nell'esempio seguente viene utilizzata l'istruzione Const per dichiarare le costanti da usare al posto dei valori letterali.
' The following statements declare constants.
Const maximum As Long = 459
Public Const helpString As String = "HELP"
Private Const startValue As Integer = 5
Esempio 2
Se si definisce una costante con tipo di Objectdati , il compilatore di Visual Basic fornisce il tipo di initializer, anziché Object. Nell'esempio seguente la costante naturalLogBase ha il tipo Decimaldi runtime .
Const naturalLogBase As Object = CDec(2.7182818284)
MsgBox("Run-time type of constant naturalLogBase is " &
naturalLogBase.GetType.ToString())
Nell'esempio precedente viene utilizzato il ToString metodo sull'oggetto restituito dall'operatore TypeGetType, perché Type non può essere convertito in String utilizzando CStr.