const (Referenční dokumentace jazyka C#)
Pomocí klíčového const
slova deklarujete konstantní pole nebo místní konstantu. Konstantní pole a místní hodnoty nejsou proměnné a nemusí být změněny. Konstanty můžou být čísla, logické hodnoty, řetězce nebo odkaz na hodnotu null. Nevytvořte konstantu, která bude představovat informace, které se mají kdykoli změnit. 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, bude nutné znovu zkompilovat další kód zkompilovaný s knihovnami, aby se změny zobrazily. Viz také klíčové slovo jen pro čtení . Příklad:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
Počínaje jazykem C# 10 mohou být interpolované řetězce konstantami, pokud se používají i všechny výrazy. Tato funkce může vylepšit kód, který vytváří konstantní řetězce:
const string Language = "C#";
const string Platform = ".NET";
const string Version = "10.0";
const string FullProductName = $"{Platform} - Language: {Language} Version: {Version}";
Poznámky
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ý lze implicitně převést na cílový typ.
Konstantní výraz je výraz, který lze plně vyhodnotit v době kompilace. Jediné možné hodnoty pro konstanty referenčních typů jsou řetězce a nulový odkaz.
Deklarace konstanty může deklarovat více konstant, například:
public const double X = 1.0, Y = 2.0, Z = 3.0;
static
Modifikátor není povolen v deklaraci konstanty.
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 const
slova. Pole const
lze inicializovat pouze v deklaraci pole. Pole readonly
lze inicializovat buď v deklaraci, nebo v konstruktoru. readonly
Pole proto můžou mít různé hodnoty v závislosti na použitém konstruktoru. I když const
je pole konstantou kompilační doby, readonly
lze pole 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 částech specifikace jazyka C#:
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro