Megosztás a következőn keresztül:


Á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, longstb.). 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