.Net’te eski kodlarınıza dokunmadan sınıflarınızı genişletin

Temmuz 26, 2010 at 10:35 pm 1 yorum


.Net Framework’ün 3.0dan sonraki versiyonlarında desteklenen harika bir özellik var: extension. Kelime anlamı olarak genişletmek demek olan bu güzel özellik bir class’ın eski kodlarına hiç dokunmadan hatta bu kodunuz bir dll içinde yer alıyorsa ve siz onun kaynak koduna artık müdehale etmiyorsanız bile bir eklenti yapabilmenize olanak sağlıyor. Nasıl mı? Hadi bakalım.

Kendi yazdığınız ve ağ işlemleri için kullandığınız MyNetworkAdapter isimli bir sınıfınız olsun. Bu sınıfa adresi verilen bir sayfanın kodunu çekme gibi kullanışlı bir özellik eklemek aklınıza geldi. Bunun için yapmanız gereken tek şey aşağıdaki gibi bir kodu -tabii ki namespace ve scope uyumluluklarına dikkat ederek- eklemek.


public static class MyNetworkAdapterExtension
{
public static string GetHTMLSource(this MyNetworkAdapter adapter,string url){
string source;
using(WebClient wc =new WebClient(url))
{
source = wc.DownloadString(url);
}
return source;
}
}

Yukarıdaki basit kodda dikkat edilmesi gereken hususlar:

  1. Yazdığınız class static olmalı
  2. Metod static olmalı
  3. Metodun ilk parametresi this anahtar sözcüğünü içermeli ki hangi sınıf ile bağlantı kurabildiğini bilsin derleyici
  4. Sanırım bu kadar

Bu kodu projenize ekledikten sonra yapmanız gereken başka bir noktada sınıfınzdan bir örnek yarattığınızda işbu metodu gönül rahatlığı ile kullanmak. Örneğin:

MyNetworkAdapter adapter = new MyNetworkAdapter();
string src = adapter.GetHTMLSource("https://yesilvadi.wordpress.com");

Bu zamana kadar GetHTMLSource isimli bir metoda sahip olmayan sınıfımız sorunsuzca çalışacaktır.

Reklamlar

Entry filed under: Genel.

Şikayetvar.com’dan şikayetim var Blog kültürü ve sosyal medya

1 Yorum Add your own

  • 1. hend  |  Ekim 31, 2010, 5:16 pm

    teşekkürler..

    Cevapla

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Takvim

Temmuz 2010
P S Ç P C C P
« Kas   Oca »
 1234
567891011
12131415161718
19202122232425
262728293031  

İstatistik

  • 42,073 sayfa görüntüleme

%d blogcu bunu beğendi: