Generic Nedir?
Türkçe kelime karşığı olarak “kendi cinsine ait özellikleri taşıyan” anlamına gelen Generic kavramı .Net Framework 2.0 ile birlikte gelen en güçlü yeniliklerden birisidir. Generic’ ler güvenli tipte veri yapıları oluşturmamızı sağlar ve bunun sonucu olarak performansı ve yazdığımız kodun kalitesini artırır. Bir veri işleme algoritmasını herhangibir sınıfa özgü olacak şekilde tasarlamak ve yazmak; aynı algoritmayı farklı şekilde tasarlayabilecegimiz başka sınıflar da varsa fazladan kod yazmak anlamına gelecektir. Generic kavramı bir veri işleme algoritmasının birçok tip tarafından type-safe bir şekilde kullanılmasını sağlar. .NET Framework 2.0 ile birlikte gelen generic, kavram olarak C++ ‘da bulunan template kavramına benzemektedir, fakat yetenekleri ve uygulama alanı açısından bakıldığında C++’daki template kavramından oldukça üstündür.
Programlama açısından bakıldığında stack(yığıt) , array ve arraylist gibi yapılar çok fazla kullanılan veri yapılarıdır. NET Framework 1.1 kütüphanesi ile gelen stack kavramı object sınıfının temelleri üzerine kurulmuştur. Aynı şekilde bir ArrayList nesnesi içerisindeki içsel sınıf mekanızması object sınıfı üzerine kurulmuştur. Arraylist ve stack sınıfının içerisinde barındırdığı veri yapıları object sınıfından birer nesne gibi davranış gösterirler, ancak object sınıfından türemiş nesneler herhangi bir özelliği olmayan nesnelerdir.
Generic sınıfların avantajları :
- compile-time ve run-time esnasında tip güvenliğini etkin bir şekilde sağlar. Değer tipleri için box ve unbox işlemi yapılmaz ve performans artışı oldukça yüksek düzeye çıkmaktadır. Aynı şekilde referans tipleri için cast işlemine gerek kalmamaktadır.
- Oluşturduğumuz generic bir sınıfı .Net kütüphanesinde bulunan bütün tipler ve kendi oluşturduğumuz veri yapıları için kullanabilmekteyiz
- Test işlemleri generic sınıfı için yeterli olacaktır.
- Yazılan uygulamada kodun şişmesi önlenmiş olur, kodun tekrar kullanılabilirliği artar ve bileşen (component) temelli yaklaşım için oldukça avantajlı bir yeniliktir.
Generic Sınıfların Bildirimi & Kullanılması
Generic sınıfların bildiriminde sınıf isminden sonra < > işaretleri arasında tür parametresi belirtilir. Generic bir sınıf bildiriminin genel biçimi şöyledir :
class Sınıf_İsmi <Tür_Parametresi>
{
// ...
}
Tür parametresi; bildirim sırasında herhangi bir türün karşılığı olmayan ve çoğu zaman T, G, AD gibi bir yer tutucudur. Bu yer tutucu(lar) sınıfın kullanımı noktasında bir tür belirtilmesi ile anlam kazanır(lar). Örneğin;
class Sample <T>
{
// ...
}
//...public static void Main()
{
Sample <int> obj = new Sample <int> ();
}
Yukarıdaki örnekte bildirim sırasında tür parametresi olarak kullanılan
NOT : Terminolojide Sample
Çok tipli generic sınıfların bildiriminde birden fazla tür parametresi kullanılabilir.
örneğin :
class Sample <AB, CD>Bu örnekte ise; AB -> int , CD -> string türlerinin karşılığı olmuşlardır.
{
// ...
}
// ....
public static void Main()
{
Sample <int, string> obj = new Sample <int, string> ();
}
Kolay gelsin...
1 yorum:
Generic kısa ve öz bu kadar anlatılır.. Teşekkürler..
Yorum Gönder