Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

Extension Metod Yazılışı ve Kullanımı

C Sharp’ta Extension metod tanımlamayı ve kullanımını gösterelim.Programcıya oldukça esneklik sağlayan metodlardır.LINQ TO SQL uygulamalarında, dizi ve koleksiyon işlemlerinde oldukça kullanışlı ve kolaylık sağlayan metodlardır.
Lambda İfadeleri (Lambda Expressions) isimli yazımda Extension metodlarının nasıl kullanıldıklarını göstermiştim.Şimdide nasıl yazıldıklarını ve kendi yazdığımız Extension metodları kullanmasını görelim.

Bir Extension metodun gövdesi aşağıdaki gibidir.

public static GeriDonusTipi MetodIsmi(this CalisilacakMetodTipi DegerDegiskeni)

Kendi Extension metodlarımızı yazmak için projeye static bir class ekleyip Extension metodlarını bu class içinde yazmamız gerekiyor.

    public static class ExtensionMetodlari
    {
        public static bool Dogru(this int A)
        {
            return true;
        }
    }

Şimdi yukarıya yazdığım Extension metodu inceleyelim.
“this int A” ifadesinden anlıyoruz ki, sadece int tiplerinde çalışan bir metoddur.
 Resimleri incelerseniz eğer, int tipinden değişkende metodumuz gözükürken, string tipten değişkenimizde gözükmemektedir.


Şimdi bir kaç kullanışlı Extension metod yazıp onları kullanalım.

    public static class ExtensionMetodlari
    {
        public static bool TekMi(this int Sayi)
        {
            return Sayi % 2 != 0;
        }
        public static bool CiftMi(this int Sayi)
        {
            return !TekMi(Sayi);
        }
        public static decimal TLyeCevir(this decimal DolarPara)
        {
            return DolarPara * 1.75m;
        }
        public static string SevkEdilenAdresleriGetir(this Satislar Satis)
        {
            return Satis.SevkAdresi;
        }
    }

Şimdi bu metodları kullanalım.

            int Sayi = 20;
            bool Tek = Sayi.TekMi();
            bool Cift = Sayi.CiftMi();
            MessageBox.Show("Tek :" + Tek + ",Çift : " + Cift);

Bir önceki yazımda olduğu gibi gene Northwind.dbml dosyası üzerinden çalışacağım.
7 nolu ürünün toplam satış fiyatını Tl cinsinden getirelim.

            NorthwindDataContext Northwind = new NorthwindDataContext();
            var Sonuc = Northwind.Satis_Detaylaris.Where(Satis => Satis.Urunler.UrunID == 7).Sum(Satis => Satis.Miktar * Satis.BirimFiyati).TLyeCevir();
            listBox1.Items.Add(Sonuc);

Bütün satışların sevk edilen adreslerini getirelim.

            NorthwindDataContext Northwind = new NorthwindDataContext();
            var Sonuc = Northwind.Satislars;
            foreach (var item in Sonuc)
            {
                listBox1.Items.Add(item.SevkEdilenAdresleriGetir());
            }

Bu yazımda burada son bulmaktadır.
Sonraki yazılarımda görüşmek üzere..
İyi çalışmalar 🙂

Bunlar da hoşunuza gidebilir...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir