static void Main(string[] args) { Person p1 = new Person("Bob", "Dude"); Person p2 = new Person("Bob2", "Dude2"); Person p3 = new Person("Bro", "Dawg"); Person p4 = new Person("Bro7", "Dawg7"); MyGenericArray <int> myInts = new MyGenericArray <int>(3); MyGenericArray <Person> myPersons = new MyGenericArray <Person>(3); myInts.AddItem(0, 13); myInts.AddItem(1, 46); myInts.AddItem(2, 85); myInts.AddItem(3, 73); myPersons.AddItem(0, p1); myPersons.AddItem(1, p2); myPersons.AddItem(2, p3); myPersons.AddItem(3, p4); foreach (int i in myInts.array) { Console.WriteLine(i); } foreach (Person p in myPersons.array) { Console.WriteLine(p.Name + p.Job); } Console.ReadKey(); }
static void Main(string[] args) { //https://www.plukasiewicz.net/Csharp_dla_zaawansowanych/Typy_generyczne //http://kurs.aspnetmvc.pl/Csharp/Klasy_generyczne //Możliwe jest ograniczenie typów jakie może przyjąć klasa generyczna. Aby ograniczyć typ należy użyć słowa kluczowego where: // Utworzenie tablicy liczb całkowitych oraz jej wypełnienie MyGenericArray <int> intArray = new MyGenericArray <int>(5); for (int i = 0; i < 5; i++) { intArray.setGenericValue(i, i * 3); } // Wypisanie wszystkich danych for (int i = 0; i < 5; i++) { Console.WriteLine("Liczba: {0}", intArray.getGenericItem(i)); } // Używając tej samej generycznej klasy jesteśmy w stanie zadeklarować innym typ danych MyGenericArray <char> charArray = new MyGenericArray <char>(5); for (int i = 0; i < 5; i++) { charArray.setGenericValue(i, (char)(i + 97)); } // Wypisanie wszystkich danych for (int i = 0; i < 5; i++) { Console.WriteLine(charArray.getGenericItem(i)); } Console.ReadKey(); // Wynik działania programu // Liczba: 0 // Liczba: 3 // Liczba: 6 // Liczba: 9 // Liczba: 12 // a // b // c // d // e }