Çarşamba, Kasım 08, 2006

Generics

Merhaba,

Bu sefer seçtiğim konu Generics kavramı niye bu konuyu seçtiğimi merak ediyorsunuzdur. Öncelikle Generic'leri kullanmanın yararlarından bahsederek bu merakınızı giderelim.

1) Çalışma zamanında oluşacak tip çevrim hatalarını en aza indirmeyi sağlar. Çünkü Object tipi ile çalışırken oluşacak tip dönüşüm hataları çalışma zamanında yakalanır. Ancak Generic'lerle çalışırken tip zorunluluğu olduğu için tip dönüşüm hataları derleme esnasında yakalanır.

2) Tip dönüşüm işlemleri Boxing ve UnBoxing'e neden olacağı için daha fazla bellek alanına ihtiyaç duyar ve bu da performansı düşürür. Generic kullanımında ise tip önceden belli olduğu için çevrime gerek kalmaz.

Bu kadar anlattık örnek vermezsek olmaz şimdi :

' VB(Sınıf yaratılması)
Class Obj
Public V1 As Object
Public V2 As Object
40 Chapter 1 Framework Fundamentals
Public Sub New(ByVal _V1 As Object, ByVal _V2 As Object)
V1 = _V1
V2 = _V2
End Sub
End Class


'Generic sınıf yaratılması
Class Gen(Of T, U)
Public V1 As T
Public V2 As U
Public Sub New(ByVal _V1 As T, ByVal _V2 As U)
V1 = _V1
V2 = _V2
End Sub
End Class


// C#(Sınıf yaratılması)
class Obj
{
public Object t;
public Object u;
public Obj(Object _t, Object _u)
{
t = _t;
u = _u;
}
}


//Generic sınıf yaratılması
class Gen
{
public T t;
public U u;
public Gen(T _t, U _u)
{
t = _t;
u = _u;
}
}


Generic sınıfları kullanırken ise;

'VB
Dim gb As New Gen(Of Double, Integer)(10.125, 2005)
Console.WriteLine(gb.V1 + gb.V2)


//C#
Gen gb = new Gen(10.125, 2005);
Console.WriteLine(gb.t + gb.u);


İyi Çalışmalar

Hiç yorum yok: