c# 2.0 generıcs - İTÜ IEEE Öğrenci Kolu

Transkript

c# 2.0 generıcs - İTÜ IEEE Öğrenci Kolu
İstanbul Teknik Üniversitesi
IEEE Öğrenci Kolu
C# 2.0 GENERICS
Generic sınıf içerisinde her türlü tipi (int,string..) tutabilen , hangi nesne tutabileceğine o
sınıftan bir nesne yaratırken karar verebileceğimiz ve belirlenen tip için aynı işleri
yapabilmemizi sağlayana sınıftır.
Generics bir metot yazdığımızda gönderilen verinin tipine göre farklı davranabilir. Örnek
verecek olursak en basitinden bir swap (yer değiştirme) dizisi üzerinde gösterebiliriz.
public static void Swap (int a, int b)
{
int temp;
temp =
a =
a;
b;
b = temp;
}
public static void Swap (string a, string b)
{
string temp;
temp =
a =
a;
b;
b = temp;
}
Adres: İTÜ Ayazağa Yerleşkesi - Elektrik/Elektronik Fakültesi
Telefon :+90 (212) 285 36 80 - E-posta: [email protected]
www.ieee.itu.edu.tr
İstanbul Teknik Üniversitesi
IEEE Öğrenci Kolu
Görüldüğü gibi integer ve string için ayrı ayrı kod yazmamız gerekecekti. Fakat genericle
bunu ortadan kaldırabiliriz.
public static void Swap (ref v1 As ItemType, ref v2 As ItemType){
ItemType temp;
temp =
v1 =
v1;
v2;
v2 = temp;
}
Her girdiğimiz tip için farklı kodlara gerek kalmadı.
Swap (ref i1, ref i2); fonksiyonunu çağırdığımızda integer;
Swap (ref s1, ref s2); fonksiyonunu çağırdığımızda string döndürecektir.
GENERIC METODLAR
public class Main
{
public static void main(String[] args)
{
GenericClass<String> s = new GenericClass<String>("osman");
s.genericTipiYaz();
s.genericDegeriYaz();
GenericClass<Integer> t = new GenericClass<Integer>(8);
t.genericTipiYaz();
t.genericDegeriYaz();
}
}
Adres: İTÜ Ayazağa Yerleşkesi - Elektrik/Elektronik Fakültesi
Telefon :+90 (212) 285 36 80 - E-posta: [email protected]
www.ieee.itu.edu.tr
İstanbul Teknik Üniversitesi
IEEE Öğrenci Kolu
Generic metotlar yukarıdaki örnekteki gibi yazılır.başka bir örnek daha verelim.
public class GenericClass<T>
{
public void GenericMethod(T genericDeger)
{
System.out.println(generi.getClass().toString());
System.out.println(generi.toString());
}
}
Dikkat edilmesi gereken nokta örnekte de görüleceği gibi kodlardaki birinci satırda
tanımlanan sınıf isminden sonraki <T> ile üçüncü satırdaki tipin karakterinin aynı
olmasıdır.
Mustafa Yalçınkaya
[email protected]
İTÜ IEEE Bilişim Komitesi
Adres: İTÜ Ayazağa Yerleşkesi - Elektrik/Elektronik Fakültesi
Telefon :+90 (212) 285 36 80 - E-posta: [email protected]
www.ieee.itu.edu.tr