C# Method Extender (Method Genişletme) ve Performansı

c# logo

Uygulama geliştirirken ne yapmaya çalıştığımız kadar ne kadar sürede yaptığımızda önemli. Bazen ufak şeylere takılıp gereksiz zaman kaybı yaşanabiliyor. Kod yazarken küçük yöntemler ile hızımızı artırmak mümkün. C# method extender yani method genişletme de bunlardan biri.

Örnek olarak şöyle bir sınıfımız olsun;

 public static class kelimeisle
    {
        public static string[] parcala(string str)
        {
            return str.Split(',');
        }

        public static int kelimeSay(string str)
        {
            return str.Split(' ').Count();
        }
    }

Normalde statik sınıfları doğrudan sınıfıadı.method olarak çağırabiliriz: kelimeisle.parcala(“bu string parcalanacak”); şeklinde. Fakat projeniz büyüdüğünde, bu parçala metodu hangi sınıfın içindeydi diye düşünebilirsiniz. Bunu önlemek için bu methodları, değişken tipinin birer uzantısı (c# method extender) olarka göstereceğiz.

Sınıfı şu hale getiriyoruz:

public static class kelimeisle
    {
        public static string[] parcala(this string str, char seperator = ' ')
        {
            return str.Split(seperator);
        }

        public static int kelimeSay(this string str)
        {
            return str.Split(',').Count();
        }
    }

Methodlarda ilk parametrenin önüne this koyduk. Bu methodlar artık this etiketinden sonra gelen değişken tipinin birer uzantısı haline geldi. Artık kullanırken sınıf isminden bağımsız kullanılabilir:

("bu stringdeki kelimeler sayılacak").kelimeSay()

Bu bize integer bir değer döndürecektir. Ayrıca bu methodlara extra parametrede gönderebiliriz:

string[] kelimeler = ("elma,armut,ayva").parcala(',')

Stringin virgül ile ayrılmasını sağlamış olduk.

C# Method Extender Performansı

C# method extender ‘lar visual studio yardımcısı. Yani uygulamanızı compile ettiğinizde;

string[] kelimeler = ("elma,armut,ayva").parcala(',');

Kısmını

string[] kelimeler = kelimeisle.parcala("elma,armut,ayva",',');

Şekline çeviriyor. Performans konusunda herhangi bir etkisi olmuyor.

Sonuç olarak, tarih formatlama, css özelliği ekleme gibi methodları, özellikle büyük projelerde takip edebilmek açısından kolaylık sağlayacak bir yöntem. Yazılım geliştirme hızınızı kolaylaştıracak küçük adımlardan bir tanesinden bahsetmiş olduk.

Bir cevap yazın

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