Sdílet prostřednictvím


Klíčové slovo const

Pomocí klíčového const slova deklarujte konstantní pole nebo místní konstantu. Konstantní pole a místní hodnoty nejsou proměnné a nelze je upravovat. Konstanty můžou být čísla, logické hodnoty, řetězce nebo odkaz na hodnotu null. Nevytvořte konstantu, která bude představovat informace, které očekáváte v průběhu času. Například nepoužívejte konstantní pole k uložení ceny služby, čísla verze produktu nebo názvu značky společnosti. Tyto hodnoty se můžou v průběhu času měnit a protože kompilátory šíří konstanty, je potřeba překompilovat další kód zkompilovaný s knihovnami, aby se změny zobrazily. Viz také klíčové slovo pouze pro čtení. Například:

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

Interpolované řetězce můžou být konstanty, pokud jsou všechny použité výrazy také konstantními řetězci. Tato funkce může vylepšit kód, který vytváří konstantní řetězce:

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

Referenční dokumentace jazyka C# dokumentuje naposledy vydané verze jazyka C#. Obsahuje také počáteční dokumentaci k funkcím ve verzi Public Preview pro nadcházející jazykovou verzi.

Dokumentace identifikuje všechny funkce, které byly poprvé představeny v posledních třech verzích jazyka nebo v aktuálních verzích Public Preview.

Návod

Informace o tom, kdy byla funkce poprvé představena v jazyce C#, najdete v článku o historii verzí jazyka C#.

Typ konstantní deklarace určuje typ členů, které deklarace zavádí. Inicializátor místní konstanty nebo pole konstanty musí být konstantní výraz, který kompilátor může implicitně převést na cílový typ.

Konstantní výraz je výraz, který kompilátor může plně vyhodnotit v době kompilace. Jediné možné hodnoty pro konstanty referenčních typů jsou řetězce a nulový odkaz.

V jedné deklaraci konstant můžete deklarovat více konstant, například:

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

Modifikátor static není v deklaraci konstanty povolený.

Konstanta se může účastnit konstantního výrazu následujícím způsobem:

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

Poznámka

Klíčové slovo jen pro čtení se liší od klíčového slova const. Pole můžete inicializovat const pouze v deklaraci pole. Pole můžete inicializovat readonly buď v deklaraci, nebo v konstruktoru. Proto readonly pole mohou mít různé hodnoty v závislosti na použitém konstruktoru. I když je pole const konstantou v době kompilace, lze pole readonly použít pro konstanty za běhu, jak je znázorněno na tomto řádku: public static readonly uint l1 = (uint)DateTime.Now.Ticks;

Příklady

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
*/

Následující příklad ukazuje, jak deklarovat místní konstantu:

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

Specifikace jazyka C#

Další informace najdete v následujících částechspecifikace jazyka jazyka C#:

Viz také