Makale Kategorileri

Kendi Projelerim

Ücretsiz Programlar (4)

Web Siteleri (1)

Tavsiye Ettiklerim

Ücretsiz Programlar (5)

Ücretli Programlar (1)

Web Siteleri (5)

Programlama

Genel (1)

C# (4)

Javascript (3)

Perl (1)

Web Sitesi Yönetimi

Apache (1)

Bilgisayar Ağları (3)

Veritabanları (1)

Donanım (1)

Sağlık (1)

Genel (5)

Duyurular (1)

Varolan Veri Tiplerine Metot Ekleme

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.

http://www.extensionmethod.net

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#

Yorumlar

Bu makaleye henüz hiç yorum yapılmamış.

Yorum Yaz

İsim

E-Posta (Yayınlanmaz)

Yorum

Güvenlik Kodu

Güvenlik Kodu Güvenlik kodunu yenile

© 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.