Junior
Na aké účely sa používajú polia s modifikátorom readonly v C#?
sobes.tech AI
Odpoveď od AI
Pole s modifikátorom readonly v jazyku C# môže byť inicializované iba v okamihu deklarácie poľa alebo v konštruktore triedy. Po inicializácii jeho hodnota nemôže byť zmenená.
Ciele použitia:
- Zabezpečenie nemennosti: Zaručuje, že hodnota poľa nebude náhodne zmenená po vytvorení objektu. To zvyšuje spoľahlivosť kódu a uľahčuje ladenie.
- Konštanty pre každý príklad: Na rozdiel od statických konštánt (
const), poliareadonlymôžu mať rôzne hodnoty pre rôzne inštancie triedy. - Inicializácia v konštruktore: Umožňuje nastaviť konečnú hodnotu poľa na základe logiky konštruktora, čo nie je možné pre
constpolia (ktoré musia byť inicializované literálom alebo konštantou počas kompilácie). - Zlepšenie výkonu pri práci so štruktúrami: Pre štruktúry môžu
readonlypolia zlepšiť výkon, pretože prekladač môže vykonávať určité optimalizácie, keďže vie, že hodnota sa nezmení.
Príklad:
public class MyClass
{
public readonly int ImmutableValue; // Môže byť inicializované tu alebo v konštruktore
public readonly string Name;
// Konštruktor na priradenie hodnôt readonly poliam
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Táto metóda spôsobí chybu pri kompilácii, pretože sa snaží zmeniť readonly pole
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Chyba pri kompilácii
// }
}