Condividi tramite


Parola chiave const

Usare la const parola chiave per dichiarare un campo costante o una costante locale. I campi costanti e le variabili locali non sono variabili e non possono essere modificati. Le costanti possono essere numeri, valori booleani, stringhe o un riferimento Null. Non creare una costante per rappresentare le informazioni che si prevede di modificare nel tempo. Ad esempio, non usare un campo costante per archiviare il prezzo di un servizio, un numero di versione del prodotto o il nome del marchio di una società. Questi valori possono cambiare nel tempo e, poiché i compilatori propagano costanti, è necessario ricompilare altri codici compilati con le librerie per visualizzare le modifiche. Vedi anche la parola chiave readonly. Per esempio:

const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";

Le stringhe interpolate possono essere costanti se tutte le espressioni usate sono anche stringhe costanti. Questa funzionalità può migliorare il codice che compila stringhe costanti:

const string Language = "C#";
const string Platform = ".NET";
const string FullProductName = $"{Platform} - Language: {Language}";

Il riferimento al linguaggio C# documenta la versione rilasciata più di recente del linguaggio C#. Contiene anche la documentazione iniziale per le funzionalità nelle versioni di anteprima pubblica per la prossima versione del linguaggio di programmazione.

La documentazione identifica tutte le funzionalità introdotte nelle ultime tre versioni della lingua o nelle anteprime pubbliche correnti.

Suggerimento

Per trovare quando una funzionalità è stata introdotta per la prima volta in C#, vedere l'articolo sulla cronologia delle versioni del linguaggio C#.

Il tipo di una dichiarazione costante specifica il tipo dei membri introdotti dalla dichiarazione. L'inizializzatore di una costante locale o di un campo costante deve essere un'espressione costante che il compilatore può convertire in modo implicito nel tipo di destinazione.

Un'espressione costante è un'espressione che il compilatore può valutare completamente in fase di compilazione. Di conseguenza, gli unici valori possibili per le costanti dei tipi riferimento sono stringhe e un riferimento Null.

È possibile dichiarare più costanti in una singola dichiarazione costante, ad esempio:

public const double X = 1.0, Y = 2.0, Z = 3.0;

Il modificatore static non è consentito in una dichiarazione costante.

Una costante può partecipare a un'espressione costante, come indicato di seguito:

public const int C1 = 5;
public const int C2 = C1 + 100;

Nota

La parola chiave . È possibile inizializzare un const campo solo nella dichiarazione del campo. È possibile inizializzare un readonly campo nella dichiarazione o in un costruttore. Pertanto, readonly campi possono avere valori diversi a seconda del costruttore usato. Anche se un campo const è una costante in fase di compilazione, il campo readonly può essere usato per le costanti di runtime, come in questa riga: public static readonly uint l1 = (uint)DateTime.Now.Ticks;

Esempi

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()
    {
        var mC = new SampleClass(11, 22);
        Console.WriteLine($"x = {mC.x}, y = {mC.y}");
        Console.WriteLine($"C1 = {SampleClass.C1}, C2 = {SampleClass.C2}");
    }
}
/* Output
    x = 11, y = 22
    C1 = 5, C2 = 10
*/

L'esempio seguente illustra come dichiarare una costante locale:

public class SealedTest
{
    static void Main()
    {
        const int C = 707;
        Console.WriteLine($"My local constant = {C}");
    }
}
// Output: My local constant = 707

Specifica del linguaggio C#

Per altre informazioni, vedere le sezioni seguenti della specifica del linguaggio C# :

Vedere anche