c# indexer işlemleri

25 Tem

Indexer kavramı C# dilinde tipleri diziler gibi kullanılabilir hale getirmektedir. Tiplere ait nesneler tıpkı bir diziymiş gibi indexlere sahiptirler. Bunu örneklerle incelemeye çalışalım.

Tek boyutlu indexer


class Week
{

   string[] week = new string[]{"Pazartesi","Salı","Çarşamba","Perşembe","Cuma","Cumartesi","Pazar"};

   public string this[int i]
   {
       get { return i >= 0 && i < 7 ? this.week[i] : "Hatalı İndex"; }
   }

}

Haftanın günlerini temsil eden Week sınıfımızı oluşturduk. Week sınıfından oluşturulan nesneler üzerinden sınıf içindeki dizi elemanlarına Indexer sayesinde erişebilecek duruma geldik.


static void Main(string[] args)
{
    Week days = new Week();

    for (int i = -1; i < 8; i++)
    {
        Console.WriteLine(days[i]);
    }
}

Sonuç:

İki Boyutlu Indexer


class Coordinates
{
     int[,] coordinates = new int[,] { { 10, 12 }, { 58, 46 }, { 16, 76 } };

     public int this[int i, int j]
     {
         get { return coordinates[i, j]; }
     }
}

static void Main(string[] args)
{
     Coordinates coor = new Coordinates();

     for (int i = 0; i < 3; i++)
     {
         for (int j = 0; j < 2; j++)
         {
             Console.WriteLine(coor[i,j]);

         }
     }

}

Sonuç: