C#'ta const Kavramı

Eyl 06, 2013
Bir değişkenin değerinin program boyunca sabit olarak tutulması istendiğinde const (sabit) ifadesinden yararlanılır. Tanımlandığı satırda değeri atanmalıdır. Pi sayısı, ışık hızı gibi belirli değerlere sahip veriler kullanılarak bir program yazılacaksa, const yapısını kullanmak kolaylık sağlar. 

En genel halde const ifadesi şu şekilde kullanılır:  

      const DataType constantName = Value;
          Console.WriteLine(constantName);  

const anahtar kelimesininin bazı özellikleri aşağıdaki gibidir:

  • const şeklinde tanımlanan veri tipleri sayesinde bellekte daha az alan kullanılmış olur. 
  • Kodların okunmasını kolaylaştırır.
  • const ile belirlenmiş değerler, programın diğer aşamalarında doğrudan ya da dolaylı olarak (fonksiyonlar kullanılarak) değiştirilemez.

           const double pi = 3.14159265; // Pi sayısına bir değer atandı.
           pi = 2 * pi; // Pi sabitinin değeri iki katına çıkarılmak istendiği için hata alındı.   
  • const veri tipinde kullanılacak olan değişkene değeri atanırken, bu değer daha önce belirlenmiş olsa da, const ile tanımlanmamışsa hata alınır. 

           int x = 10; // x'in değeri 10 olarak belirlendi. 
           const int Deger = x;  // Deger, x değişkenine atanmaya çalışıldığı için hata alındı.

  • const ile tanımlanacak olan bir değişkene değeri atanırken bir başka veriden yararlanmak istenilirse, yararlanılacak olan verinin de const ile tanımlanmış olması gerekir.

                const int x = 10;   // x'in değeri 10 olarak atandı. 
                const int Deger = x;    // x ifadesi Deger ifadesine atandı.

  •  const anahtar kelimesi kullanılarak açık hesaplamalar yapılabilir.    

          const int ilkMiktar = 2;
          const double sonMiktar = (40 * ilkMiktar) - (40 * ilkMiktar * 0.05); 

Uygulama: 

Aşağıda const anahtar kelimesi ile tanımlanan veri tiplerinin, diğer veri tiplerinden farkını göstermeyi amaçlayan bir uygulamanın kodları bulunmaktadır. constile tanımlanmayan x ve y parametreleri ile const ile tanımlanan değisken1 ve degisken2 parametreleri uygulamanın ilerleyen kısımlarında farklı değerlere atanmak istenmiştir. const ile tanımlananlarda değişiklik olmazken, const ile tanımlanmayanlar değişmiştir. 

using System;
public class ConstVeriTipi
{
   class ConstSınıfı
   {
      public int x;
      public int y;
      public const int degisken1 = 5;
      public const int degisken2 = degisken1 + 5;

      public ConstSınıfı(int parametre1, int parametre2)
      {
         x = parametre1;
         y = parametre2;
      }
   } 
    public static void Main()
   {
      ConstSınıfı cS = new ConstSınıfı(11, 22);  
      Console.WriteLine("x = {0}, y = {1}", cS.x, cS.y);
      Console.WriteLine("degisken1 = {0}, degisken2 = {1}", ConstSınıfı.degisken1, ConstSınıfı.degisken2 );
   }
}

 Uygulamanın ekran çıktısı şu şekilde olacaktır: