duyuruElektroArge.com'a Hoşgeldiniz. Üye Olmak İçin Tıklayın. duyuru





houseForum ana sayfa   iletişimİletişim   bilgiSSS  
kırmızı yeşil mavi
ekleKayıt  anahtarGiriş
evForum ana sayfa goE-Kütüphane goE-Ders goC#
 

  • Reklam

Ders 44 - Generic Classlar - ColectionBase

C Dili Dersleri - Okan Bilke

Ders 44 - Generic Classlar - ColectionBase

Mesajgönderen okanbilke » 11 Kas 2015 03:46

Class nesnelerinde indexer oluşturmayı Classlar dersinde bulabilirsiniz. Bu sayede o sınıfa eklenen dizi değişken değerleri indis numarası belirtilerek elde edilebiliyordu.
Dilerseniz oluşturduğunuz bu indexer sayesinde verilerinizi kendi tanımladığınız bir dizide değil, o sınıfa "List" (vs) sınıf özelliği vererek elemanlarınızı yazdırabilirsiniz.
Şimdi uygulamaya geçelim:
using System.Collections.Generic;   // Ekleyin
class Sehirler : CollectionBase
{
public String this[int Numara]
{
get
{
return (String)this.List[Numara];
//CollectionBase Olduğu İçin Kullanılabilir
}
set
{
this.List[Numara] = value;
//CollectionBase Olduğu İçin Kullanılabilir
}
}
public void Ekle(String Eleman)
{
this.List.Add(Eleman);
}
public int KayitSayisi
{
get
{
return this.List.Count;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Sehirler YeniSehir = new Sehirler();
YeniSehir.Ekle("ANKARA");
YeniSehir.Ekle("ISTANBUL");
YeniSehir.Ekle("RIZE");

for (int i = 0; i <= YeniSehir.KayitSayisi - 1; i++)
{
listBox1.Items.Add(YeniSehir[i].ToString());
}
}

Resim

Örnek Class uygulamasında List sınıfına ait dizi özelliklerinden faydalanabildik. Bunun sebebi CollectionBase sınıfına ait kalıtımın sınıfa alınmış olmasıdır. Aksi takdirde List sınıfının kullanıldığı bir çok satır hata verecektir. CollectionBase sınıfını yazacağınız classlar içerisinde kullanmak isterseniz using System.Collections kütüphanesini projenize dahil etmemiz gerekecektir. Aksi takdirde daha önceki derslerimizde belirttiğimiz gibi hatalarla karşılaşırsınız. Belirtmekte yarar var CollectionBase kullandığınız için aşağıdaki şekilde kullanıcı tanımlı bir sınıf koleksiyonunun değerlerine de rahatça erişebilirsiniz.
class Sehirler : CollectionBase
{
public String this[int Numara]
{
get
{
return (String)this.List[Numara];
//CollectionBase Olduğu İçin Kullanılabilir
}
set
{
this.List[Numara] = value;
//CollectionBase Olduğu İçin Kullanılabilir
}
}
public void Ekle(String Eleman)
{
this.List.Add(Eleman);
}
public int KayitSayisi
{
get
{
return this.List.Count;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Sehirler YeniSehir = new Sehirler();
YeniSehir.Ekle("ANKARA");
YeniSehir.Ekle("ISTANBUL");
YeniSehir.Ekle("RIZE");
IEnumerator Oku = YeniSehir.GetEnumerator();
while(Oku.MoveNext())
{
listBox1.Items.Add(Oku.Current.ToString());
}
}
okanbilke@gmail.com
Kullanıcı avatarı
okanbilke
Site Kurucusu
Site Kurucusu
 
Mesajlar: 721
Beğendiklerim: 0 mesaj
Beğenilenlerim: 0 mesaj
Kayıt: 15 Mar 2013 13:09
Konum: Ankara

Reklam

Dön C#

Kimler çevrimiçi

Bu forumu gezen kullanıcılar: Hiç bir kayıtlı kullanıcı yok ve 1 misafir


  • Reklam
cron