Sobes.tech
Junior

C#-da readonly modifikatoru ilə sahələr hansı məqsədlər üçün istifadə olunur?

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində readonly modifikatoru ilə işarələnmiş sahə yalnız sahənin elan olunması zamanı və ya sinifin konstruktorunda başlatıla bilər. Başladıqdan sonra onun dəyəri dəyişdirilə bilməz.

İstifadə məqsədləri:

  1. Dəyişməzliyi təmin etmək: Obraz yaradıldıqdan sonra sahənin dəyərinin təsadüfi dəyişdirilməsinin qarşısını alır. Bu, kodun etibarlılığını artırır və səhvlərin tapılmasını asanlaşdırır.
  2. Hər bir nümunə üçün sabitlər: Statik sabitlər (const) ilə müqayisədə, readonly sahələr müxtəlif nümunələr üçün fərqli dəyərlər ala bilər.
  3. Konstruktor daxilində başlatma: Konstruktorun məntiqinə əsaslanaraq sahənin son dəyərini təyin etməyə imkan verir, bu const sahələr üçün mümkün deyil (onlar literal və ya sabit ilə tərtib zamanı başlatılmalıdır).
  4. Strukturlarla işləyərkən performansı artırmaq: Strukturlar üçün, readonly sahələr performansı yaxşılaşdıra bilər, çünki tərtibçi müəyyən optimizasiyalar edə bilər, dəyər dəyişməyəcəyini biləndə.

Nümunə:

public class MyClass
{
    public readonly int ImmutableValue; // Burada və ya konstruktor daxilində başlatıla bilər
    public readonly string Name;

    // Readonly sahələrə dəyər təyin etmək üçün konstruktor
    public MyClass(int value, string name)
    {
        ImmutableValue = value;
        Name = name;
    }

    // Bu metod tərtib xətası ilə nəticələnəcək, çünki o, readonly sahəni dəyişməyə çalışır
    // public void TryChangeValue(int newValue)
    // {
    //     ImmutableValue = newValue; // Tərtib xətası
    // }
}