.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("http://yesilvadi.wordpress.com");

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

Entry filed under: Genel. Tags: .

Ş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

Yorum yapın

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Değiştir )

Twitter picture

You are commenting using your Twitter account. Log Out / Değiştir )

Facebook photo

You are commenting using your Facebook account. Log Out / Değiştir )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Takvim

Temmuz 2010
Pts Sal Çar Per Cum Cts Paz
« Kas   Oca »
 1234
567891011
12131415161718
19202122232425
262728293031  

En Son Yazılanlar

İstatistik

  • 31,850 sayfa görüntüleme

Takip Et

Get every new post delivered to your Inbox.