Nedir Bu ReadOnly

Nedir Bu ReadOnly

Nedir Bu ReadOnly

  5 dakika Okuma Süresi
Merhabalar, C# programlama dili kullanan kişilerin çok kez görmüş ve kullanmış olduğu readonly kavramı hakkında konuşalım biraz.
Adından da anlaşılacağı üzere sadece okunabilir anlamına gelen bu anahtar kelime (sadece anahtar kelime, başka bir şey değil :)) ile oluşturulmuş değişkenler sadece okunabilir, yani sonradan değeri değiştirilemez. En başta tanımlar ve değerini belirtiriz ve sonra ne yazık ki bi daha değiştiremeyiz.
Aklınıza gelebilecek tüm değişken tiplerini readonly ile belirtebilirsiniz.

Bu kadar konuştuktan sonra hadi gelin sırasıyla özelliklerinden, yapısından falan bahsedelim;
1- Sadece ve sadece class düzeyinde oluşturulabilirler, herhangi bir fonksiyon içerisinde tanımlama yapılamazlar.

class Deneme
{
    readonly int x = 5;
    void BlaBla(){
    {
        readonly int y = 5;    // Hata verecektir
    }
}

2- Tanımlandıkları anda yada ilgili class'ın constructor metodu içerisinde değer atanır ve bir daha değiştirilemez.

class Deneme
{
    readonly int z;
    public Deneme()
    {
        z = 5;
    }
}

3- Bir readonly değişken ile başka bir readonly değişkene değer atanabilir.

class Deneme
{
    readonly int a = 5;
    readonly int b;
    readonly int c;
    public Deneme()
    {
        b = a + 5;
        c = 4 * b + a + 4;
    }
}

4- Çalışma zamanı sabiti olsa da derleme zamanı değişkenleri de readonly olarak atanabilir. Örneğin DateTime, derleme zamanı değişkenleri barındırsa da DateTime property ve fonksiyonları readonly olarak belirtilebilir.

readonly DateTime gun = DateTime.Now;
readonly string gun2 = DateTime.Now.ToShortDateString();

5- readonly ifadeler static olarak farklı classlara taşınabilir veya farklı classlardan erişim sağlanabilir.
readonly static int x = 5;

Evet readonly kavramını bu kadar anlattıktan sonra bi uygulama yapıp yazımızı sonlandıralım.
Örnek uygulamamızda bi class oluşturup, bu class içerisinde dairenin alanını hesaplayıp geri döndürelim ve ana class'ımız içerisinde de kullanıcıdan aldığımız yarıçapa göre dairenin alanını ekrana yazdıralım;

class Daire
{
    readonly double yaricap;
    readonly double pi = 3.14;
    public Daire(double yaricap)
    {
        this.yaricap = yaricap;
    }
    internal double AlanHesapla()
    {
        return pi * yaricap * yaricap;
    }
}
class Program
{
    static void Main()
    {
        Console.Write("Yarıçap Giriniz: ");
        double yaricap = Convert.ToDouble(Console.ReadLine());
        Daire daire = new Daire(yaricap);
        double alan = daire.AlanHesapla();
        Console.WriteLine("Dairenin Alanı: " + alan);
    }
}
Evet örneği size bırakıyorum, nasıl bi yapısı olduğunu siz biraz düşünün isterseniz :)
Bi başka dersimizde görüşmek üzere, herkese hayırlı günler.


  • İçeriği Paylaş:

İÇERİĞİ DEĞERLENDİR

Toplam Değerlendirme Sayısı: 0
Toplam Değerlendirme: 0 / 5

Cevap Yaz