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.
Le costanti sono valori non modificabili che sono noti in fase di compilazione e non cambiano per la vita del programma. Le costanti vengono dichiarate con il modificatore const . Solo i tipi predefiniti C# possono essere dichiarati come const
. Le costanti del tipo di riferimento diverse da String possono essere inizializzate solo con un valore Null . I tipi definiti dall'utente, incluse classi, struct e matrici, non possono essere const
. Usare il modificatore readonly per creare una classe, uno struct o una matrice inizializzata una volta in fase di esecuzione (ad esempio in un costruttore) e successivamente non può essere modificata.
C# non supporta const
metodi, proprietà o eventi.
Il tipo di enumerazione consente di definire costanti denominate per i tipi predefiniti integrali, ad esempio int
, uint
, long
, e così via. Per altre informazioni, vedere enum.
Le costanti devono essere inizializzate man mano che vengono dichiarate. Per esempio:
class Calendar1
{
public const int Months = 12;
}
In questo esempio la costante Months
è sempre 12 e non può essere modificata anche dalla classe stessa. Infatti, quando il compilatore rileva un identificatore costante nel codice sorgente C# (ad esempio, Months
), sostituisce il valore letterale direttamente nel codice del linguaggio intermedio (IL) prodotto. Poiché non esiste alcun indirizzo di variabile associato a una costante in fase di esecuzione, const
i campi non possono essere passati per riferimento e non possono essere visualizzati come valore l in un'espressione.
Annotazioni
Prestare attenzione quando si fa riferimento a valori costanti definiti in altro codice, ad esempio DLL. Se una nuova versione della DLL definisce un nuovo valore per la costante, il programma conterrà comunque il valore letterale precedente fino a quando non viene ricompilato rispetto alla nuova versione.
È possibile dichiarare contemporaneamente più costanti dello stesso tipo, ad esempio:
class Calendar2
{
public const int Months = 12, Weeks = 52, Days = 365;
}
L'espressione utilizzata per inizializzare una costante può fare riferimento a un'altra costante se non crea un riferimento circolare. Per esempio:
class Calendar3
{
public const int Months = 12;
public const int Weeks = 52;
public const int Days = 365;
public const double DaysPerWeek = (double) Days / (double) Weeks;
public const double DaysPerMonth = (double) Days / (double) Months;
}
Le costanti possono essere contrassegnate come pubbliche, private, protette, interne, protette interne o private. Questi modificatori di accesso definiscono il modo in cui gli utenti della classe possono accedere alla costante . Per altre informazioni, vedere Modificatori di accesso.
Le costanti sono accessibili come se fossero campi statici perché il valore della costante è lo stesso per tutte le istanze del tipo. Non si usa la static
parola chiave per dichiararle. Le espressioni che non si trovano nella classe che definisce la costante devono usare il nome della classe, un punto e il nome della costante per accedere alla costante. Per esempio:
int birthstones = Calendar.Months;
Specifiche del linguaggio C#
Per altre informazioni, vedere la specifica del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.
Vedere anche
- Proprietà
- Tipi
- di sola lettura
- Immutabilità nella parte 1 di C#: tipi di immutabilità