sinan ilyas
Makale Kategorileri
Son Makaleler
Yürüyen Merdivenlerde El Bantları Neden Basamaklardan Daha Hızlı İlerler?
Uzak Masaüstü Bağlantı Hatası: Data Encryption Error
ADSL Modem Telefon Hattına Splitter Kullanmadan Bağlanabilir Mi?
Singleton: Bir Sınıftan Sadece Bir Örnek Oluşturma
Varolan Veri Tiplerine Metot Ekleme
Visual Studio'da Linq-to-Sql Sorgularını Görmek
Resim Dosyasındaki Yazının Fontunu Bulan Site
MSSQL Server'da Bozulmuş Model Veritabanı Nasıl Düzeltilir?
Sinan İLYAS 23 Şubat 2010 Salı 18:48
String, StreamReader, DataBinder vs. gibi size hazır sunulan veri tiplerine, orijinali üzerinde değişiklik yapmadan yeni metotlar (fonksiyonlar) eklemek isteyebilirsiniz. Bu tür metotlara Genişletme Metotları (Extension Methods) deniliyor.
Diyelim ki, String sınıfına KelimeSayisi isimli yeni bir metot eklemek istiyorsunuz. Bunun için aşağıdaki kodu projenize eklemeniz yeterli.
public static class ExtensionMetotlarim
{
public static int KelimeSayisi(this String str)
{
return str.Split(new char[] {' ', '.', ','}, StringSplitOptions.RemoveEmptyEntries).Length;
}
}
Daha sonra bu metodu şu şekilde kullanabilirsiniz:
// Herhangi bir string oluşturuluyor string cumle = "Merhaba, bu cümlede toplam 7 kelime var."; // kelimeSayisi değişkenine 7 değeri atanır int kelimeSayisi = cumle.KelimeSayisi();
Yukarıdaki örnekte ben sınıf adı olarak ExtensionMetotlarim kullandım. Sınıf adını siz istediğiniz gibi seçebilirsiniz. Burada, sınıfın ve metodun static olduğuna dikkat etmişsinizdir. Burada ayrıca dikkat etmeniz gereken şey, metodun parametresi. Genişletme metotlarının ilk parametreleri hangi tipin genişletildiğini gösterir. Metot çağrılırken bu parametrenin değeri parantez içine yazılmaz. Çünkü ilk parametre, metodu çağıran nesnenin kendisidir. Yukarıdaki örnekte, cumle.KelimeSayisi() şeklinde çağrıldığı için, metodun ilk parametresi olan str değişkeni cumle değişkenini temsil etmektedir.
Eğer isterseniz birden fazla parametresi olan genişletme metotları da yazabilirsiniz.
public static class ExtensionMetotlarim
{
public static int KelimeSayisi(this String str, char[] ayiraclar)
{
return str.Split(ayiraclar, StringSplitOptions.RemoveEmptyEntries).Length;
}
}
Bu durumda, metot çağrılırken parantez içerisine ayiraclar değişkeninin değeri yazılmalıdır.
// Herhangi bir string oluşturuluyor
string cumle = "Merhaba, bu cümlede toplam 7 kelime var.";
// kelimeSayisi değişkenine 7 değeri atanır
int kelimeSayisi = cumle.KelimeSayisi(new char[] {' ', '.', ','});
Aşağıda adresini verdiğim siteden kod yazarken hayatınızı kolaylaştıracak bazı hazır genişletme metotlarını bulabilirsiniz.
Anahtar Kelimeler: visual studio, vs, visual studio 2005, visual studio 2008, vs2005, vs 2008, dotnet, .net, asp.net, c#, csharp, c sharp, genişletme metotları, genişletme, extension, metot, metod, method, fonksiyon, function, sınıf, class, tip, type, eklemek, yazmak
Kategori: Programlama > C#
Bu makaleye henüz hiç yorum yapılmamış.
© 1997- Sinan İLYAS
Site içeriği kaynak gösterilmeden kopyalanamaz.
Site tasarım şablonu Free CSS Templates sitesinden alınarak düzenlenmiştir.
Copyright © 2007 Ornate. All Rights Reserved. Designed by Free CSS Templates.