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: ieeesb@itu.edu.tr 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: ieeesb@itu.edu.tr 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 yalcinmus114@hotmail.com İTÜ IEEE Bilişim Komitesi Adres: İTÜ Ayazağa Yerleşkesi - Elektrik/Elektronik Fakültesi Telefon :+90 (212) 285 36 80 - E-posta: ieeesb@itu.edu.tr www.ieee.itu.edu.tr