C# Const ve Readonly Farkı



Bir uygulama yazdık ve bir değişkenin değerinin değişmemesini istiyoruz. Bu durumda bu değişkeni const veya readonly tanımlarız. Peki const ve readonly tanımlanan değişkenler arasında nasıl bir fark var?

const : Türkçe’ye Sabit olarak çevrilebilir. Class seviyesinde tanımlanır ve tanımlanma anında değeri verilmek zorundadır. Sonradan değeri değiştirilemez.

readonly : Sadece-Okunabilir anlamına gelir. Class seviyesinde tanımlanır. Tanımlandığı anda değeri verilebilir veya Class Constructor’ında değeri verilebilir. Sonradan değeri değiştirilemez. Const'tan en büyük farkı budur. İkincisi ise Readonly değişkenlere nesne referansı ile ulaşabiliriz. Const da ise sınıfın kendisi ile ulaşabiliriz.

namespace CONST
    {
        class ConstReadonlyVeri
        {
                      public ConstReadonlyVeri()
                      {
                              pi = 22 / 7;
                      }
            public const string sonbahar = "Autumn";
            public readonly float pi = 3.14f;
        }
    }




    namespace CONST
    {
        class Program
        { 
            const string mat= "matematik";
            static void Main(string[] args)
            {
                //Aşağıdakini yaparak elemanlara ulaşamayız.
                //SabitVeri s = new SabitVeri();
                Console.WriteLine(ConstRadonlyVeri.sonbahar);
                Console.WriteLine(mat);
                // Değiştirmeyi denersek
                // ConstReadonlyVeri.sonbahar = "ilkbahar";
                // Expected alırız.
            }
        }
    }

1 yorum :