Junior
Pentru ce scopuri sunt utilizate câmpurile cu modificatorul readonly în C#?
sobes.tech AI
Răspuns de la AI
Un câmp cu modificatorul readonly în C# poate fi inițializat doar în momentul declarării câmpului sau în constructorul clasei. După inițializare, valoarea sa nu poate fi schimbată.
Scopuri de utilizare:
- Asigurarea imuabilității: Garantă că valoarea câmpului nu va fi schimbată accidental după crearea obiectului. Acest lucru crește fiabilitatea codului și facilitează depanarea.
- Constante pentru fiecare instanță: Spre deosebire de constantele statice (
const), câmpurilereadonlypot avea valori diferite pentru diferite instanțe ale clasei. - Inițializare în constructor: Permite stabilirea unei valori finale pentru câmp bazată pe logica constructorului, ceea ce nu este posibil pentru câmpurile
const(care trebuie inițializate cu un literal sau constant în timpul compilării). - Îmbunătățirea performanței la lucrul cu structuri: Pentru structuri, câmpurile
readonlypot îmbunătăți performanța, deoarece compilatorul poate face anumite optimizări știind că valoarea nu se va schimba.
Exemplu:
public class MyClass
{
public readonly int ImmutableValue; // Poate fi inițializat aici sau în constructor
public readonly string Name;
// Constructor pentru atribuirea valorilor câmpurilor readonly
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Această metodă va cauza o eroare de compilare, deoarece încearcă să modifice un câmp readonly
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Eroare de compilare
// }
}