C#'ta Extension Metod Kullanımı

Extension Method Nedir ? 

Extension Methodlar bir tip (Integer,String,Byte vb.) üzerinde herhangi bir değişiklik yapmadan o tipi kolayca genişletmemize imkan sağlar.Daha basit olarak anlatacak olursak tanımladığımız bu genişletme metodları özünde bildiğimiz static metodlardır yani String değişken tipi için de kullandığımız static "ToString" methodu, bu static method string tipinin yazıldığı class içerisinde tutulmaktadır.Extension Methodlar "ToString" tarzında static methodlar tanımlamamıza olanak sağlar.C# 3.0 ile hayatımıza giren Extension Methodlar çoğu profesyonel projeler içerisinde yer alır.

Extension Methodları daha iyi anlayabilmek adına bir örnek proje hazırlayalım."ToString" methodu gibi kendimize ait "ToInt" methodu geliştirelim.Öncelikle Visual Studionuzda bir Console projesi oluşturun.Oluşturduğunuz bu proje içerisine yeni bir sınıf tanımlayın.Ben sınıfımın adını ConvertInt erişim belirleyicisini Static olarak tanımladım.Sınıfımızı aşağıdaki şekilde düzenleyelim.
 

public static class ConvcertInt
{
        public static int ? EmreConvertInt (this string value, int? defaultvalue)
        {
            int val;
            if (!int.TryParse(value, out val))
            {
                return defaultvalue;
            }
            return val;
        }
}

Aşağıda gördüğünüz gibi String bir değişken tipi içerisine EmreConvertInt adında bir method oluşturmuş olduk.Normal methodlar ile ExtensionMethod arasındaki fark budur,Extension Methodlar verdiğimiz parametreyi direk olarak kullanmamıza olanak sağlar.

string value = textBox1.Text;
//Extension Method
int? integerExtension = textBox1.Text.EmreConvertInt(0);
//Normal Method
int integernormal = NormalConvertInt(textBox1.Text, 0);
//ToInt32
int integerfra = Convert.ToInt32(textBox1.Text);

Bir sonraki makalede görüşmek üzere...

İlginizi Çekebilir

Yorum Yap