Sobes.tech
Junior

C#'ta readonly modifiyeri ile alanlar hangi amaçlar için kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

C# dilinde readonly modifiyecili alan, yalnızca alanın bildirilmesi sırasında veya sınıfın yapıcı metodunda başlatılabilir. Başlatmadan sonra değeri değiştirilemez.

Kullanım amaçları:

  1. Değişmezliği sağlama: Nesne oluşturulduktan sonra alanın değerinin kazara değiştirilmesini önler. Bu, kodun güvenilirliğini artırır ve hata ayıklamayı kolaylaştırır.
  2. Her örnek için sabitler: Statik sabitler (const) ile karşılaştırıldığında, readonly alanlar farklı örnekler için farklı değerler alabilir.
  3. Yapıcıda başlatma: Yapıcı mantığına dayanarak alanın son değerini belirlemeye izin verir, bu da const alanlar için mümkün değildir (derleme sırasında literal veya sabit ile başlatılmalıdırlar).
  4. Yapılarla çalışırken performans artışı: Yapılar için, readonly alanlar performansı artırabilir çünkü derleyici, değerin değişmeyeceğini bildiği için belirli optimizasyonlar yapabilir.

Örnek:

public class MyClass
{
    public readonly int ImmutableValue; // Burada veya yapıcıda başlatılabilir
    public readonly string Name;

    // readonly alanlara değer atamak için yapıcı
    public MyClass(int value, string name)
    {
        ImmutableValue = value;
        Name = name;
    }

    // Bu yöntem derleme hatası verecektir, çünkü readonly alanı değiştirmeye çalışıyor
    // public void TryChangeValue(int newValue)
    // {
    //     ImmutableValue = newValue; // Derleme hatası
    // }
}