Istruzione Const (Visual Basic)

Aggiornamento: novembre 2007

Consente di dichiarare e definire una o più costanti.

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

Parti

  • attributelist
    Facoltativo. Elenco di attributi applicabili a tutte le costanti dichiarate nell'istruzione. Vedere Elenco degli attributi tra parentesi angolari ("<" e ">").

  • accessmodifier
    Facoltativo. Consente di specificare il codice con cui accedere alle costanti. Sono consentiti i valori seguenti: Public (Visual Basic), Protected (Visual Basic), Friend (Visual Basic), Protected Friend o Private (Visual Basic).

  • Shadows
    Facoltativo. Consente di ridichiarare e nascondere un elemento di programmazione nella classe base. Vedere Shadows.

  • constantlist
    Obbligatorio. Elenco delle costanti dichiarate in questa istruzione.

    constant[ , constant ... ]

    Ogni elemento constant è associato alla sintassi e alle parti seguenti:

    constantname[ As datatype ] = initializer

    Part

    Descrizione

    constantname

    Obbligatorio. Nome della costante. Vedere Nomi di elementi dichiarati.

    datatype

    Obbligatorio se Option Strict è On. Consente di indicare il tipo di dati della costante.

    initializer

    Obbligatorio. Espressione valutata in fase di compilazione e assegnata alla costante.

Note

Se nell'applicazione è contenuto un valore che non viene mai modificato, è possibile definire una costante denominata e utilizzarla al posto di un valore letterale. È più facile ricordare un nome che un valore. È possibile definire la costante una sola volta e utilizzarla in numerose posizioni del codice. Se in una versione successiva è necessario ridefinire il valore, l'istruzione Const è l'unico luogo in cui si dovranno effettuare modifiche.

È possibile utilizzare l'istruzione Const solo a livello di modulo o di routine. In altri termini, il contesto della 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 ulteriori informazioni, vedere Contesti delle dichiarazioni e livelli di accesso predefinito.

Le costanti locali all'interno di una routine per impostazione predefinita dispongono di accesso pubblico e non è possibile utilizzare modificatori di accesso per tali variabili. Per impostazione predefinita, le costanti dei membri di classi e moduli al di fuori di una routine dispongono di accesso privato, mentre le costanti membri di strutture dispongono di accesso pubblico. È possibile modificarne i livelli di accesso mediante gli appositi modificatori.

Regole

  • Contesto della dichiarazione. Una costante dichiarata a livello di modulo, al di fuori di una routine, è una costante membro ed è membro della classe, della struttura o del modulo che la dichiara.

    Una costante dichiarata a livello di routine è una costante locale ed è locale per la routine o il blocco che la dichiara.

  • Attributi. È possibile applicare gli attributi solo alle costanti membri e non alle costanti locali. Un attributo fornisce ai metadati dell'assembly informazioni non significative per archivi temporanei quali le costanti locali.

  • Modificatori. Per impostazione predefinita, tutte le costanti sono Shared, Static e ReadOnly. Non è possibile utilizzare queste parole chiave per dichiarare una costante.

    A livello di routine non è possibile utilizzare Shadows né i modificatori di accesso per dichiarare le costanti locali.

  • Costanti multiple. È possibile dichiarare più costanti nella stessa istruzione di dichiarazione, specificando per ognuna la parte constantname. e separandole con una virgola.

Regole dei tipi di dati

  • Tipi di dati. L'istruzione Const può dichiarare il tipo di dati di una variabile. È possibile specificare un tipo di dati o il nome di una enumerazione.

  • Tipo predefinito. Se non viene specificato il tipo datatype, alla costante sarà associato il tipo di dati initializer. Se si specificano sia la parte datatype che initializer, è necessario che il tipo di dati di initializer sia convertibile nel tipo datatype. Se non vengono specificate né datatype né initializer, verrà utilizzato il tipo di dati predefinito Object.

  • Tipi diversi. È possibile specificare tipi diversi di dati per costanti diverse utilizzando una clausola As per ogni variabile dichiarata. Non è tuttavia possibile dichiarare più costanti dello stesso tipo utilizzando una clausola As comune.

  • Inizializzazione. È necessario inizializzare il valore di ogni costante in constantlist. Per fornire un'espressione da assegnare alla costante, viene utilizzato initializer. L'espressione può essere composta da una combinazione di valori letterali, da altre costanti già definite e da membri di enumerazione già definiti. Per combinare tali elementi è possibile utilizzare operatori aritmetici e logici.

    In initializer non è possibile utilizzare variabili o funzioni. ma è consentito l'utilizzo di parole chiave di conversione quali CByte e CShort. È inoltre possibile utilizzare AscW, se lo si chiama con una costante String o un argomento Char, poiché è possibile eseguirne la valutazione in fase di compilazione.

Comportamento

  • Ambito. È possibile accedere alle costanti locali solo dall'interno della routine o del blocco a cui appartengono. È possibile accedere alle costanti membri dall'interno della classe, struttura o modulo a cui appartengono.

  • Qualificazione. Il codice al di fuori di una classe, di una struttura o di un modulo deve qualificare il nome di una costante membro con il nome di tale classe, struttura o modulo. Il codice al di fuori di una routine o di un blocco non può fare riferimento a costanti locali interne a tale routine o blocco.

Esempio

Nell'esempio seguente l'istruzione Const viene utilizzata per dichiarare costanti da utilizzare in sostituzione 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

Se viene definita una costante con il tipo di dati Object, il compilatore di Visual Basic assegnerà il tipo di dati initializer invece che Object. Nell'esempio seguente, alla costante naturalLogBase viene associato il tipo Decimal in fase di esecuzione.

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

Nell'esempio precedente viene utilizzato il metodo ToString sull'oggetto Type restituito da Operatore GetType, poiché non è possibile convertire Type in String utilizzando CStr.

Vedere anche

Concetti

Conversioni implicite ed esplicite

Enumerazioni e costanti intrinseche

Riferimenti

Istruzione Enum (Visual Basic)

Direttiva #Const

Istruzione Dim (Visual Basic)

Istruzione ReDim (Visual Basic)

Funzioni di conversione del tipo

Funzioni Asc e AscW

Altre risorse

Costanti ed enumerazioni in Visual Basic