Állandók (C# programozási útmutató)
Az állandók nem módosítható értékek, amelyek a fordítás időpontjában ismertek, és nem változnak a program életében. Az állandók a const módosítóval vannak deklarálva. Csak a beépített C# -típusok deklarálhatók const
. A hivatkozástípus-állandók nem String csak null értékkel inicializálhatók. A felhasználó által definiált típusok, beleértve az osztályokat, a szerkezeteket és a tömböket, nem lehetnek const
. Az írásvédett módosító használatával létrehozhat egy olyan osztályt, szerkezetet vagy tömböt, amely futásidőben egyszer inicializálódik (például konstruktorban), és ezt követően nem módosítható.
A C# nem támogatja const
a metódusokat, tulajdonságokat és eseményeket.
Az enum típus lehetővé teszi az elnevezett állandók meghatározását az integrált beépített típusokhoz (például int
, uint
, long
stb.). További információkért lásd az enumerálást.
Az állandókat inicializálni kell a deklarált módon. Példa:
class Calendar1
{
public const int Months = 12;
}
Ebben a példában az állandó Months
mindig 12, és magát az osztályt sem lehet módosítani. Valójában, amikor a fordító állandó azonosítóval találkozik a C# forráskódjában (például Months
), a literális értéket közvetlenül az általa előállított köztes nyelv (IL) kódjába helyettesíti. Mivel futásidőben nincs állandóhoz társított változócím, a mezők nem továbbíthatók hivatkozással, const
és nem jeleníthetők meg l-értékként egy kifejezésben.
Feljegyzés
Körültekintően járjon el, ha más kódban, például DLL-ben definiált állandó értékekre hivatkozik. Ha a DLL új verziója új értéket határoz meg az állandóhoz, a program továbbra is a régi literális értéket fogja tárolni, amíg újra nem fordítja az új verzióhoz.
Egyszerre több azonos típusú állandó is deklarálható, például:
class Calendar2
{
public const int Months = 12, Weeks = 52, Days = 365;
}
Az állandó inicializálására használt kifejezés hivatkozhat egy másik állandóra, ha nem hoz létre körkörös hivatkozást. Példa:
class Calendar3
{
public const int Months = 12;
public const int Weeks = 52;
public const int Days = 365;
public const double DaysPerWeek = (double) Days / (double) Weeks;
public const double DaysPerMonth = (double) Days / (double) Months;
}
Az állandók megjelölhetők nyilvános, privát, védett, belső, védett belső vagy magánvédettként. Ezek a hozzáférési módosítók határozzák meg, hogy az osztály felhasználói hogyan férhetnek hozzá az állandóhoz. További információ: Access Modifiers.
Az állandók úgy érhetők el, mintha statikus mezők lennének, mert az állandó értéke megegyezik a típus összes példánya esetében. Nem használja a kulcsszót a static
deklarálásához. Az állandót definiáló osztályban nem szereplő kifejezéseknek az osztály nevét, egy pontot és az állandó nevét kell használniuk az állandó eléréséhez. Példa:
int birthstones = Calendar.Months;
C# nyelvi specifikáció
További információkért lásd a C# nyelvi specifikációját. A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása.
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: