Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A kulcsszóval const állandó mezőt vagy helyi állandót deklarálhat. Az állandó mezők és a helyiek nem változók, és nem módosíthatók. Az állandók lehetnek számok, logikai értékek, sztringek vagy nullhivatkozások. Ne hozzon létre állandót az idő múlásával várhatóan változó információk megjelenítéséhez. Ne használjon például állandó mezőt egy szolgáltatás árának, egy termék verziószámának vagy egy vállalat márkanevének tárolásához. Ezek az értékek idővel változhatnak, és mivel a fordítók állandókat propagálnak, a kódtárakkal lefordított többi kódot újra kell fordítani a módosítások megtekintéséhez. Lásd még a readonly kulcsszót. Például:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
Az interpolált sztringek állandók lehetnek, ha az összes használt kifejezés szintén állandó sztring. Ez a funkció javíthatja az állandó sztringeket tartalmazó kódot:
const string Language = "C#";
const string Platform = ".NET";
const string FullProductName = $"{Platform} - Language: {Language}";
A C# nyelv referenciadokumentuma a C# nyelv legújabb kiadású verzióját ismerteti. Emellett a közelgő nyelvi kiadás nyilvános előzetes verziójú funkcióinak kezdeti dokumentációját is tartalmazza.
A dokumentáció azonosítja azokat a funkciókat, amelyeket először a nyelv utolsó három verziójában vagy az aktuális nyilvános előzetes verziókban vezetnek be.
Jótanács
Ha meg szeretné tudni, hogy mikor jelent meg először egy funkció a C#-ban, tekintse meg a C# nyelvi verzióelőzményeiről szóló cikket.
Az állandó deklaráció típusa határozza meg a deklaráció által bevezetett tagok típusát. Egy helyi állandó vagy állandó mező inicializálójának állandó kifejezésnek kell lennie, amelyet a fordító implicit módon konvertálhat a céltípusra.
Az állandó kifejezés olyan kifejezés, amelyet a fordító teljes mértékben ki tud értékelni fordításkor. Ezért a hivatkozástípusok állandóinak egyetlen lehetséges értéke a sztringek és a nullhivatkozás.
Több állandót is deklarálhat egyetlen állandó deklarációban, például:
public const double X = 1.0, Y = 2.0, Z = 3.0;
A static módosító nem engedélyezett állandó deklarációban.
Az állandók az alábbiak szerint vehetnek részt egy állandó kifejezésben:
public const int C1 = 5;
public const int C2 = C1 + 100;
Jegyzet
A csak olvasható kulcsszó eltér a const kulcsszótól. Egy mezőt csak a mező deklarációjában inicializálhat const . Egy mezőt inicializálhat readonly a deklarációban vagy egy konstruktorban. Ezért readonly mezők a használt konstruktortól függően eltérő értékekkel rendelkezhetnek. Bár a const mező fordítási időállandó, a readonly mező futásidejű állandókhoz is használható, ahogy ebben a sorban is: public static readonly uint l1 = (uint)DateTime.Now.Ticks;
Példák
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
*/
Az alábbi példa bemutatja, hogyan deklarálhat helyi állandót:
public class SealedTest
{
static void Main()
{
const int C = 707;
Console.WriteLine($"My local constant = {C}");
}
}
// Output: My local constant = 707
C# nyelvspecifikáció
További információt a C# nyelvi specifikációjánakalábbi szakaszaiban talál:
- állandók
- állandó kifejezések