C# eğitimlerimize veri tiplerimize kısa bir ara verip tamda bu noktada Const ve Readonly kavramlarından bahsedeceğim.

Yazdığımız programlar içerisinde bazen bir değişkenin değeri hiç bir şekilde değiştirilemesin istediğimiz durumlar olur. Mesela bilimsel ve matematiksel sabitler gibi.

Cont Kullanımı

Bu tür sabit değerli değişkenler tanımlayabilmek için Const anahtar sözcüğünü kullanırız.

Const İle Tanımlama

Gördüğümüz şekilde tanımlanır. 

 

Kurallar

  1. Const ile yapılan tanımlamalarda mutlaka değişkenin ilk değeri atanmalıdır. Aksi halde aşağıda gördüğümüz hatayı alırız.

2. Const ataması yapılmış değişken değeri kodlar içinde tekrar değiştirilemez. Eğer böyle bir şey yaparsak aşağıdaki hatayı alırız.

3. Const tipli bir değişkene ilk değer ataması yine bir değişken yardımı ile yapılacaksa o değişkende const tipli olmak zorundadır.

İlk olarak doğrusunu görelim.

Aksi bir durumda şöyle bir hata alacaktık.

4. const ifadesi kullanılarak sayısal veri türleri üzerinde açık matematiksel işlemler yapılabilmektedir.

 

5. Önemli Const ile sadece sayısal sabitler değil tüm nesne grupları için sabit değerler oluşturabilirsiniz.

Readonly Kullanımı

İsminden de anlaşılacağı üzere sadece okunabilir demektir. Nesnelere ilk değerlerini verdikten sonra tekrar değiştirilmesini istemiyorsak bunu yapabilmenin bir diğer yöntemi Readonly kullanımıdır. Yalnız burada ilk değer yapıcı metod içinde değiştirilebilmektedir. Önemli olan bizim için yapıcı metod dışında diğer metodlar içinde sadece okunabilir olmasıdır.

Kurallar

  1. Readonly değişkenler tanımlanacağı zaman Class seviyesinde tanımlanırlar. Metodlar içinde tanımlanamazlar.
  2. Önemli ve const’dan ayıran bir diğer özelliği ilk değer ataması yapılmadan tanımlanabilir.
  3. Değişkene değer ataması yalnızca Yapıcı(Constructor) Metod içinde gerçekleştirilebilir. Bu sayede metodlar içinde sadece okunabilir özelliği ile yer alacaktır. 4. Yapıcı metod içinde değeri birden fazla kez değiştirilebilir. Son değeri tüm metodlar tarafından okunabilir değerini ifade eder.

Bu eğitim yazımda bu kadardı. Bir sonraki yazımda görüşmek üzere.