Junior
K čemu slouží pole s modifikátorem readonly v C#?
sobes.tech AI
Odpověď od AI
Pole s modifikátorem readonly v jazyce C# může být inicializováno pouze v okamžiku deklarace pole nebo v konstruktoru třídy. Po inicializaci jeho hodnota nemůže být změněna.
Cíle použití:
- Zajištění neměnnosti: Zaručuje, že hodnota pole nebude náhodně změněna po vytvoření objektu. To zvyšuje spolehlivost kódu a usnadňuje ladění.
- Konstanty pro každý instance: Na rozdíl od statických konstant (
const) mohoureadonlypole mít různé hodnoty pro různé instance třídy. - Inicializace v konstruktoru: Umožňuje nastavit konečnou hodnotu pole na základě logiky konstruktoru, což není možné u
constpolí (která musí být inicializována literálem nebo konstantou při kompilaci). - Zlepšení výkonu při práci se strukturami: Pro struktury mohou
readonlypole zlepšit výkon, protože překladač může provádět určité optimalizace s vědomím, že hodnota se nezmění.
Příklad:
public class MyClass
{
public readonly int ImmutableValue; // Může být inicializováno zde nebo v konstruktoru
public readonly string Name;
// Konstruktor pro přiřazení hodnot readonly polím
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Tato metoda způsobí chybu při kompilaci, protože se snaží změnit readonly pole
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Chyba při kompilaci
// }
}