C# - Klasy i metody generyczne

C# - Klasy generyczne

Klasa Stack jako klasa generyczna

C# - Metody generyczne

Przykład użycia metody generycznej swap

Wartości domyślne w kontekście klas generycznych

Wykorzystywanie parametrów klas i metod generycznych

Ograniczenia na parametry klas i metod generycznych

Klasa bazowa lub typ klasy jako ograniczenie

Interfejs jako ograniczenie

Przykład: interfejs systemowy IComparable

Inerfejs systemowy
interface IComparable{
  int CompareTo(object obj);
}
deklaruje jedną metodę, która ma zwrócić odpowiednio -1,0 lub 1 jesli obiekt na rzecz którego wywołano metodę jest mniejszy, równy lub większy od obiektu obj.

Przykład: Sortowanie

Wymóg posiadania publicznego konstruktora domyślnego jako ograniczenie

Interfejsy generyczne

Porównanie szablonów w C++ i klas generycznych w C#

Postępowanie kompilatora C++ względem klasy szablonowej

Postępowanie kompilatora C# względem klasy generycznej

Postępowanie kompilatora C# względem klasy generycznej c.d.

Inne różnice to między innymi

Klasy generyczne języka C# nie pozwalają na definiowanie rzeczywiście ogólnych algorytmów niezależnych od typu ze względu na brak pełnego odpowiednika typedef z języka C++, który pozwala na wydobywanie typów składowych z typów będących parametrem formalnym.