const (Riferimenti per C#)
Si usa la parola chiave const per dichiarare un campo costante o una variabile locale costante. I campi e le variabili locali costanti non sono variabili e non sono quindi modificabili. Gli elementi costanti possono essere numeri, valori booleani, stringhe o un riferimento Null. Non creare una costante per rappresentare informazioni di cui si prevede la modifica in qualsiasi momento. Un campo costante, ad esempio, non deve essere usato per archiviare il prezzo di un servizio, il numero di versione di un prodotto o il nome dell'organizzazione di una società. Tali valori potrebbero cambiare nel tempo e, poiché i compilatori propagano le costanti, eventuale altro codice compilato con quelle librerie dovrebbe essere ricompilato per riflettere le modifiche. Vedere anche la parola chiave readonly. Ad esempio:
const int x = 0;
public const double gravitationalConstant = 6.673e-11;
private const string productName = "Visual C#";
Note
Il tipo di una dichiarazione di costante specifica il tipo di membri introdotti dalla dichiarazione. L'inizializzatore di una variabile locale costante o di un campo costante deve essere un'espressione costante che possa essere convertita in modo implicito nel tipo di destinazione.
Un'espressione di costanti è un'espressione che può essere valutata interamente in fase di compilazione. Di conseguenza, gli unici valori possibili per le costanti dei tipi di riferimento sono string e il riferimento Null.
La dichiarazione di costante può includere più costanti, ad esempio:
public const double x = 1.0, y = 2.0, z = 3.0;
Il modificatore static non è consentito in una dichiarazione di costante.
Una costante può far parte di un'espressione costante, ad esempio:
public const int c1 = 5;
public const int c2 = c1 + 100;
Nota
La parola chiave readonly è diversa dalla parola chiave const.Un campo const può essere inizializzato solo nella dichiarazione del campo.Un campo readonly può essere inizializzato nella dichiarazione o in un costruttore.I campi readonly possono quindi presentare valori diversi a seconda del costruttore usato.Inoltre, mentre un campo const rappresenta una costante in fase di compilazione, il campo readonly può essere usato per le costanti in fase di esecuzione, come nella riga seguente: public static readonly uint l1 = (uint)DateTime.Now.Ticks;
Esempio
public class ConstTest
{
class SampleClass
{
public int x;
public int y;
public const int c1 = 5;
public const int c2 = c1 + 5;
public SampleClass(int p1, int p2)
{
x = p1;
y = p2;
}
}
static void Main()
{
SampleClass mC = new SampleClass(11, 22);
Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y);
Console.WriteLine("c1 = {0}, c2 = {1}",
SampleClass.c1, SampleClass.c2 );
}
}
/* Output
x = 11, y = 22
c1 = 5, c2 = 10
*/
In questo esempio viene illustrato come usare le costanti come variabili locali.
public class SealedTest
{
static void Main()
{
const int c = 707;
Console.WriteLine("My local constant = {0}", c);
}
}
// Output: My local constant = 707
Specifiche del linguaggio C#
Per altre informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.
Vedere anche
Riferimenti
Modificatori (Riferimenti per C#)