Senaryo : Uygulama çalışırken değeri değiştirilemeyecek değişken tanımlamanız gerekiyor.
Çözüm : Muhtemel iki çözüm var, const ve readonly değişken tanımlamak. Fakat aralarında önemli 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.
public class Matematik
{
private const double PI = 3.14159;
}
public class Matematik
{
private readonly int PI; /// PI değişkeninin değerini burada da verebilirdim.
public Matematik()
{
PI = 22 / 7;
}
}

Google Kitaplar‘da, şuradan bulabileceğiniz .Net CLR Unleashed kitabından edindiğim bir bilgiyi paylaşmak istiyorum.
CLS (Common Language Specification), CLS-Uyumlu tüm dillerin, anahtar kelimelerin değişken ismi olarak kullanabilmesini sağlayacak bir mekanizma sunmasını ister.
C# dili için bu mekanizma, anahtar kelimenin başına gelen @ işareti ile sağlanır.
@ işareti kullanılarak, şunlar yapılabilir;
int @int = 8;
Console.WriteLine("integer değişken : {0}", @int);
bool @bool = true;
Console.WriteLine("boolean değişken : {0}", @bool);
Bu sayede, anahtar kelime olan “int”, değişken ismi olarak kullanılabildi.
Kaynak : MSDN: C# Keywords, MSDN: CLS, MSDN: What is CLS, Amazon: NET CLR Unleashed
Categories: C#, Programlama Tags: .net, amazon, anahtar kelime, cls, cls-compliant, csharp, değişken, google books, keyword, msdn, variable