Google da ara

 

Eylül 2010
Pts Sal Çar Per Cum Cts Paz
« Ağu    
 12345
6789101112
13141516171819
20212223242526
27282930  

Google Reklamları

Dil Seçimi

Bağış yada Ödeme

Csharp – Interface kullanıma örnek

Kitap adında bir class ımız olsun ve üzerinde integer değer alan ve geri dönüş değeri string olan bir indexer ımız bulunsun.

Kitap dan türettiğimiz BilgisayarKitabi class ımız üzerindede aynı şekilde bir indexer bulunsun aynı şekilde EdebiyatKitabi vs. bir çok Kitap classından türeyen classlarımız olsun ve hepsinde de aynı imzalı ve geri dönüş değerine sahip indexerlar bulunsun.

Şimdi böyle bir senaryoda bize Kitap dan türeyen bir class ın örneği olduğuna emin olduğumuz bir nesne gelsin, ve bu nesne üzerindeki indexer dan gerekli bilgiyi almamız gerektiğini düşünelim.

Şu şekilde yaparsak işimiz çözülüyor gibi:

void KitapIsle(Kitap ktp)

{

MessageBox.Show(ktp[1]);

}

Ancak burada ulaştığımız indexer Kitap classında tanımlı olan indexer bize ise gelen nesnenin kendi classında bulunan indexer lazım çünkü ikisi birbirinden farklı işlemler yapıyorlar. Böyle bir durumda yapılabilecek şeylerden birisi Interface kullanmak ve gelen nesneyi Interface e cast etmek yani:

interface IKoseliDeneme

{

string this[int sayfaNo]

{

get;

set;

}

}

Şeklinde bir interface imiz olduğunu düşünürsek :

void KitapIsle(Kitap ktp)

{

IKoseliDeneme kitabim = (IKoseliDeneme)ktp;

MessageBox.Show(kitabim[1]);

}

Şeklinde yazdığımızda interface her iki class Kitap,EdebiyatKitabi ında implement edilmiş olsa dahi kitabim dan ulaştığımız indexer nesnenin asıl Classındaki indexer olacaktır.