Genişletme Metodları (Extension Methods)

Genişletme metodları, bir tip (string, int vb.)  üzerinde herhangi bir değişikliğe gitmeden yeni özellikler katan metotlardır. Kod yazarken daha hızlı yazmamıza ve konuşma diline yatkın ifadeler kullanmamıza olanak tanırlar. Örneğin string tipinde bir değişkeni int tipindeki bir değişkene atamak için int tipine Convert ederiz. Genişletme metodlarıyla bunu oldukça kullanışlı yapabiliriz. Bir örnek vererek Genişletme Metodları (Extension Methods) kavramını somutlaştıralım.

int ogrenciNumarasi =Convert.ToInt32(txtOgrenciNo.Text);

Örnekte görüldüğü gibi string tipindeki bir değeri int tipine dönüştürdük. Bunun için string değeri Convert sınıfındaki ToInt32 metodu ile dönüştürdük. Oysa genişleme metodu ile dönüştürme (convert) işlemini kod yazım akışımızı bozmadan hızlıca yapabiliriz.

int ogrenciNumarasi =txtOgrenciNo.Text.SayiyaCevir();
// SayiyaCevir metodu yazı içerisinde mevcuttur.

gibi... Extension Metods oluşturma kuralları :

  • Genişletme metodlarınız static bir sınıfta olmalıdır.
  • Metodunuzda static olmalıdır.
  • Metodunuzun ilk parametresi this kelimesi ile olmalıdır.

Yukarıda örnekte kullandığımız genişletme metodunun kodları aşağıdadır.  Aşağıdaki kodları GenisletmeMetodlarim.cs olarak kaydedip projenize koyabilirsiniz.

using System;
public static class GenisletmeMetodlarim
{
    public static int SayiyaCevir(this object sayi)
    {
        try
        {
            if (sayi == null) throw new Exception();
            int x = Convert.ToInt32(sayi);
            return x;
        }
        catch (Exception)
        {
            return 0;
        }
    }
}

Bir sonraki yazıda kullanmış olduğum metodları paylaşacağım. Görüşmek üzere...

Bu metodları her projemizde kullanabileceğimiz için bir Class içerisinde tutmamız mantıklı olanıdır.

Genişletme metodları örneklerinin bulunduğu bir internet sitesi: http://www.extensionmethod.net/csharp

SQL Dersleri 1 - SQL Nedir? Ne işe yarar? Önceki Yazı

SQL Dersleri 1 - SQL Nedir? Ne işe yarar?

Sql ve Linq ile  İlişkili Tablolardan Kayıt Sayısı Bulmak Sonraki Yazı

Sql ve Linq ile İlişkili Tablolardan Kayıt Sayısı Bulmak

Yorum/Soru Yazın