Konstanty (Příručka programování C#)
Konstanty jsou nezměnitelné hodnoty, které jsou známy v době kompilace a změnit dobu trvání programu.Konstanty jsou deklarovány pomocí const modifikátor.Pouze C# předdefinované typy (s výjimkou System.Object) může být deklarován jako const.Seznam předdefinovaných typů naleznete v tématu Předdefinované typy (C#-Reference).Uživatelem definované typy, včetně tříd, struktur a matic, nemůže být const.Použití readonly třída, struktura nebo matice, která je inicializována jednou za běhu (například v konstruktoru) a poté vytvořit modifikátor nelze změnit.
C# nepodporuje const metod, vlastností nebo událostí.
Typ výčtu umožňuje definovat konstanty pojmenované nedílnou předdefinovaných typů (například int, uint, long, a tak dále).Další informace naleznete v tématu enum (C#-Reference).
Konstanty musí být inicializována, jako jsou deklarovány.Příklad:
class Calendar1
{
public const int months = 12;
}
V tomto příkladu je konstanta months je vždy 12 a nemůže být změněn i v samotné třídy.Ve skutečnosti při kompilátor narazí konstantní identifikátor ve zdrojovém kódu jazyka C# (například months), použije přímo do kódu zprostředkující jazyk (IL), který vytváří náhradní hodnotu literálu.Protože neexistuje proměnná adresa přidružené konstanta v době spuštění const pole nemohou být předány podle odkazu a nemůže objevit jako hodnotu l ve výrazu.
[!POZNÁMKA]
Při odkazu na konstantní hodnoty definované v jiný kód jako knihovny dll postupujte opatrně.Pokud je nová verze knihovny DLL Určuje novou hodnotu pro konstantu, program stále podržte stará hodnota literálu, dokud je provedena nová kompilace proti nové verze.
Více konstanty stejného typu lze deklarovat současně, například:
class Calendar2
{
const int months = 12, weeks = 52, days = 365;
}
Výraz, který slouží k inicializaci konstanty mohou odkazovat na jiné konstantní Pokud nevytvoří cyklický odkaz.Příklad:
class Calendar3
{
const int months = 12;
const int weeks = 52;
const int days = 365;
const double daysPerWeek = (double) days / (double) weeks;
const double daysPerMonth = (double) days / (double) months;
}
Konstanty lze označit jako veřejné, soukromé, chráněné, vnitřní, nebo protectedinternal.Tyto modifikátory přístupu definovat přístup konstanta třídy uživatelů.Další informace naleznete v tématu Modifikátory přístupu (Příručka programování C#).
Konstanty jsou přístupné, jako kdyby byly statické hodnotu konstanty je stejný pro všechny instance typu pole.Nepoužívejte static klíčové slovo je deklarovat.Výrazy, které nejsou ve třídě, která definuje konstanty musíte použít název třídy, období a název konstanty konstanta přístup.Příklad:
int birthstones = Calendar.months;
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Referenční dokumentace
Třídy a struktur (Příručka programování C#)
Vlastnosti (Příručka programování C#)
Typy (Příručka programování C#)