Junior
Zašto se koriste polja sa modifikatorom readonly u C#?
sobes.tech АИ
Одговор од АИ
Polje sa modifikatorom readonly u C# može biti inicijalizovano samo u trenutku deklaracije polja ili u konstruktoru klase. Nakon inicijalizacije, njegova vrednost ne može biti promenjena.
Ciljevi korišćenja:
- Obezbeđivanje nepromenljivosti: Garantuje da vrednost polja neće biti slučajno promenjena nakon kreiranja objekta. Ovo povećava pouzdanost koda i olakšava otklanjanje grešaka.
- Konstantne vrednosti za svaki primerak: Za razliku od statičkih konstanti (
const),readonlypolja mogu imati različite vrednosti za različite instance klase. - Inicijalizacija u konstruktoru: Omogućava da se postavi konačna vrednost polja na osnovu logike konstruktora, što nije moguće za
constpolja (koja moraju biti inicijalizovana literalom ili konstantom tokom kompilacije). - Poboljšanje performansi pri radu sa strukturama: Za strukture,
readonlypolja mogu poboljšati performanse, jer kompajler može da vrši određene optimizacije znajući da se vrednost neće menjati.
Primer:
public class MyClass
{
public readonly int ImmutableValue; // Može biti inicijalizovano ovde ili u konstruktoru
public readonly string Name;
// Konstruktor za dodelu vrednosti readonly poljima
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Ova metoda će izazvati grešku pri kompilaciji, jer pokušava da menja readonly polje
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Greška pri kompilaciji
// }
}