ÖrneÄŸin Array’lerden bildiÄŸiniz üzere bazı objeler üzerinde degisken[0], degisken[1] ÅŸeklinde deÄŸer alabilmek ve deÄŸer atamak mümkündür.
Peki kendi yazdığınız bir class içerisinde bunu nasıl yapabilirsiniz? Bunun için C# özel bir keyword içeriyor: this. “this” keyword’unun içinde bulunduÄŸumuz class’ın o anki instance’ına eriÅŸmek için kullanıldığını hepimiz biliyoruz fakat aÅŸağıdaki örnekte de görebileceÄŸiniz üzere bu keyword’ün baÅŸka bir kullanımı daha var.
using System.Web;
namespace Sunali
{
public class CSharpIndexer
{
private string[] data = new string[4];
public string this[int index]
{
get { return data[index]; }
set { data[index] = value; }
}
public void WriteToStream(HttpResponse response)
{
for (int i = 0; i < data.Length; i++)
{
response.Write(this[i] + "");
}
}
}
}
AÅŸağıdaki kod bir ASPX dosyasının içeriÄŸidir…
namespace Sunali
{
public class ClassToUserIndexer : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
DoSomething();
base.OnLoad(e);
}
public void DoSomething()
{
CSharpIndexer csi = new CSharpIndexer();
csi[0] = "Ahmet";
csi[1] = "Ali";
csi[2] = "AyÅŸe";
csi[3] = "Mehmet";
csi[4] = "CoÅŸkun";
csi.WriteToStream(Response);
}
}
}
Not: Örnekte görmüş olduÄŸunuz class’a ait indexer “string” deÄŸer döndürmek ve kabul etmek üzere yazıldı fakat siz “this” keyword’ünden önce bulunan “string” tipi yerine istediÄŸiniz tipi yazarak indexer özelliÄŸinden faydalanabilirsiniz.