Kolekcje generyczne w języku C#

Kolekcje generyczne - kolekcja obiektów tego samego typu.


Kolekcje generyczne znajdują się w przestrzeni nazw System.Collections.Generic. Przestrzeń ta zawiera klasy i interfejsydefiniujące kolekcje, które pozwalają na tworzenie typowanych kolekcji generycznych. W stosunku do zwykłych kolekcji, kolekcje generyczne zapewniają większe bezpieczeństwo przechowywanych typów oraz większą wydajność, ponieważ nie jest wykonywane pakowanie i wypakowanie elementów. W przestrzeni nazw System.Collections.Generic znajdują sie nie tylko gotowe klasy z kolekcjami, których możemy użyć, ale również interfejsy. Interfejsy nie posiadają ciała metody, zawierają jedynie deklaracje metod. Nie możemy stworzyć obiektu a więc instancji interfejsu. Zatem dlaczego interfejsy znajdują sie razem z kolekcjami w tej samej przestrzeni nazw? Kolekcje mogą zawierać różne typy a więc nie jest możliwe stworzenie implementacji dla wszystkich możliwych typów, jakie człowiek może wymyśleć. Dlatego zamiast konkretnej implementacji są stworzone interfejsy, które mówią nam jak ma wyglądać struktura danej kolekcji. Implementacje metod kolekcji tworzymy sami w zależności od typu przechowywanego w tej kolekcji oaz metod wymaganych przez interfejs kolekcji. Przykładowo możemy przypisywać różne obiekty do tego samego interfejsu. Nie interesuje nas jak dany obiekt będzie się zachowywał, musi tylko mieć zaimplementowane metody, które są wymagane w interfejsie. Pozwala to w przyszłości podmienić implementacje dla obiektu a kod dalej będzie poprawny, ponieważ z punktu widzenia interfejsu wymagane metody się nie zmieniły a więc pobierają i zwracają te same typy, co wcześniej.

Więcej informacji na temat kolekcji generycznych:

http://msdn.microsoft.com/pl-pl/library/System.Collections.Generic.aspx
Komentarze facebook (polub nasz profil na FB aby je zobaczyć):