Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  .Net Framework'te System.Collections aduzayında tanımlanmış, kendi kolleksiyonlarınızı (CustomerCollection gibi) türetebileceğiniz abstract sınıf.

IList (dolayısıyla ICollection (dolayısıyla IEnumerable)) arayüzlerini implement eder. Bir çok standart işlevselliği kendisi implement ettiği * için size düşen sadece indexer, Add, IndexOf, Insert, Remove, Contains metodlarından gerekli gördüklerinizin implementasyonunu yapmaktır.

CollectionBase sınıfı protected olarak işaretlenmiş IList tipinde List isimli bir property'ye sahiptir. Bu List üyesini ArrayList tipinde veren yine protected InnerList property'si de vardır. Bunları kullanarak CollectionBase'in sakladığı elemanlar üzerinde işlem yapabilirsiniz. Bunlar protected olduğu için dışardan erişilemez, sadece türetilen sınıf tarafından erişilebilir.

Örnek olarak CustomerCollection sınıfımızı yazalım:
public class CustomerCollection : CollectionBase
{
    public Customer this[int index] 
    {
        get 
        {
            return (Customer) List[index];
        }
        set 
        {
            List[index] = value;
        }
    }
    public int Add(Customer value)
    {
        return List.Add(value);
    }
    public int IndexOf(Customer value)
    {
        return List.IndexOf(value);
    }
    public void Insert(int index, Customer value)
    {
        List.Insert(index, value);
    }
    public void Remove(Customer value)
    {
        List.Remove(value);
    }
    public bool Contains(Customer value)
    {
        return List.Contains(value);
    }
}

CollectionBase sınıfını kullanarak sadece bu kadar kodla kendi kolleksiyonlarımızı yazabiliyoruz. Güzel bir şey bu. Ama artık C# 2.0'da generics var. O da güzel bir şey.
fizikci
23 Kasım 2005 14:01
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1125 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen