C# Extension Method Oluşturma

Posted by

Merhaba arkadaşlar, bu yazımda sizlere C# Extension Method Oluşturma konusundan bahsedeceğim. Extension Method nedir, Extension Methodu nasıl oluşturabiliriz ve nasıl kullanabiliriz gibi konulara değineceğim.

Extension methodlara genişletilebilir method da denilebilir. Kısaca özetlemek gerekirse bir tip üzerinde herhangi bir değişikliğe uğratmadan genişletilebilir olmasını sağlayabiliriz. Örnek vermek gerekirse decimal bir değişkenimiz bulunmakta ve bu değişkende de para birimi tutuluyor. Biz bu değişkenin değerini ekranda ya da herhangi bir yerde gösterirken formatlayarak göstermek istiyoruz. Bu gibi durumlarda bir extension method oluşturabilir ve istediğimiz format ile gösterimini sağlayabiliriz. Extension methodlar belirlenen tip için oluşturulabilir. Örneğin int, decimal, float birçok tip değişkenin sonuna (.) koyduktan sonra ToString() metodu çıkmaktadır. Bu ToString() metodu ilgili tipi bir stringe dönüşmektedir. Biz de bir extension method oluşturduğumuzda ilgili tipin sonuna (.) koyduktan sonra bu extension methodu kullanabiliriz.

Extension Method oluşturmak için bilinmesi gereken önemli noktalar:

– Public static bir class oluşturulur.

– Oluşturmak istediğimiz method da static olarak tanımlanmalıdır.

– Methodu oluştururken hangi tip üzerinde bu metodun çalışmasını sağlayacağımızı this keyword’ü ile belirlemeliyiz.

Extension Method Örneği:


public static class DatetimeExtension

{

public static string ToFormattedPrice(this decimal amount)
{
return amount.ToString("#,##0.00");
}

}

Yukarıdaki örnekte görüldüğü gibi gelen para birimi değerini ToFormattedPrice() metodumuz ile para birimi formatında oluşturması için bir metod yazdık.

Kullanımına gelelim:


decimal amount = 1500.50m;

string moneyFormat = amount.ToFormattedPrice();

Görüldüğü üzere oluşturduğumuz extension method decimal değişkeninin sonunda çıkmaktadır. Bu metot da bize istediğimiz şekilde formatlayarak bir string değer oluşturucaktır. Eğer extension method gözükmüyor ise using kısmına oluşturduğumuz class’ın namespace’ini eklememiz gerekmektedir. Eğer namespace’i düzenleyip aynı proje ismini verirsek using işlemine gerek kalmayacaktır.

Extension Method oluşturma işlemi örneklerdeki gibi yapılabilir.

Bir sonraki yazıda görüşmek üzere…

Leave a Reply

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