C# – Custom Collection Initializers Yapılarında Add Metodunu Extension Metod Yapısıyla Yönlendirme

Merhaba,

Bir önceki kaleme almış olduğum C# – Custom Collection Initializers(Özel Koleksiyon İlklendiricileri) başlıklı makalemde Custom Collection Initializers yapılarının nasıl oluşturulduğuna değinmiştim. Bu içeriğimizde ise ilgili makalede bahsetmiş olduğum ilklendiricinin tetiklediği “Add” metodununun işlevini başka bir metoda vererek, compiler’ın beklediği “Add” metodunu oluşturacağımız ekstra bir Extension metod ile bu [başka] metoda nasıl yönlendireceğimizi inceleyeceğiz.

Şimdi aşağıda oluşturmuş olduğum özel koleksiyon yapısını ele alalım.

    struct Personel
    {
        public int Id { get; set; }
        public string Adi { get; set; }
        public string SoyAdi { get; set; }
    }

    class Personeller : IEnumerable<Personel>
    {
        readonly List<Personel> PersonelListesi = new List<Personel>();
        public IEnumerator<Personel> GetEnumerator() => PersonelListesi.GetEnumerator();
        IEnumerator IEnumerable.GetEnumerator() => PersonelListesi.GetEnumerator();
    }

Bu koleksiyona ilklendirici ile veri eklemek istiyorsak eğer aşağıda görüldüğü üzere içerisinde “Add” isminde bir metodun bulunması gerekmektedir.
C# – Custom Collection Initializers Yapılarında Add Metodunu Extension Metod Yapısıyla Yönlendirme

Peki, ilklendiricinin tetikleyeceği metodun “Add” dışında başka bir isimde olmasını istiyorsak? aşağıdaki ekran görüntüsünü inceleyiniz.
C# – Custom Collection Initializers Yapılarında Add Metodunu Extension Metod Yapısıyla Yönlendirme.PNG
Gördüğünüz gibi compiler ille de “Add” isimli metotda ısrar ediyor, nuh diyor, peygamber demiyor…

İşte bu tarz durumda bizde “Add” isimli metot yerine kendi belirlediğimiz bir isimde ısrar ediyorsak eğer aşağıdaki gibi bir Extension metot ihtiyacımızı görecektir.

C# – Custom Collection Initializers Yapılarında Add Metodunu Extension Metod Yapısıyla Yönlendirme.PNG

Yazmış olduğumuz “Add” isimli Extension metod “Personeller” sınıfına yani oluşturduğumuz özel koleksiyona ait bir genişletme metodudur. Haliyle bu Extension metod sayesinde, koleksiyon içerisine veri ekleme sorumluluğunu farklı bir isimdeki(Ekle) metoda yüklemiş oluyoruz. Bu da bize kendi sınıfımızda daha özgür ve öznel bir inşa imkanı tanıyor…

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.