sinan ilyas
Makale Kategorileri
Sevdiğim Sözler
Cesaret, korktuğunuzu sadece sizin bilmenizdir.
Franklin P. Jones
Son Makaleler
Gazlı Bez Adı Nereden Geliyor?
Birbirlerinin Gözünden Programcılar ve Kullanıcılar
Denizlerimizde Avlanan Balıklar Ne Zaman Yenir?
Hangi Plastik Türleri Sağlığa Zararlı?
MAC Adreslerini Gösteren Program
Tüketici Sorunları Hakem Heyetlerinin Çalışma Usul Ve Esasları
Javascript ile Sonraki Sayfayı Otomatik Yükletme
VB6 hatası: 430 - Class does not support Automation or does not support expected interface
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.