Generic IEnumerator

Önceki makalelerde IEnumerator interface ini izah etmiştik. Şimdi sizlere Generic olarak benzerinin nasıl yazılabileceğini göstereceğim. Generic class’lar performans artırmak amaçlı tek veri tipine dayalı olarak yazılan class’lardır. Bu amaçla Class’ın kullanacağı tip yaratılırken “<>” arasında verilmek zorundadır. Şimdi kodlamaya dikkatinizi çekeceğim.

namespace WindowsApplication8
{
interface Numaratorum
{
object this[int index]
{
get;
set;
}
string AktifEleman
{
get;
}
bool SonrakiVarmi();
}
class Degerlerim : Numaratorum
{
ArrayList Dizi = new ArrayList();
int IndexNo = -1;
public object this[int index]
{
get
{
return Dizi[index];
}
set
{
Dizi[index] = value;
}
}
public string AktifEleman
{
get
{
return Convert.ToString(Dizi[IndexNo]);
}
}
public bool SonrakiVarmi()
{
IndexNo++;
int Adet = Dizi.Count;
if (IndexNo >= Adet)
{
return false;
}
else
{
return true;
}
}
public Numaratorum Numaralandir()
{
Numaratorum Yeni = this as Numaratorum;
return Yeni;
}
public void Ekle(string Deger)
{
Dizi.Add(Deger);
}
}
}
//////////////
private void button1_Click(object sender, EventArgs e)
{
Degerlerim A = new Degerlerim();
A.Ekle(“10”);
A.Ekle(“Nihat”);
A.Ekle(“35”);
//
Numaratorum Yeni = A.Numaralandir();
while (Yeni.SonrakiVarmi())
{
listBox1.Items.Add(Yeni.AktifEleman);
}
}

///////////////////////////////