To byłby „ogólny”. Jak już wspomniano, istnieje wyjaśnienie tego pojęcia przez Microsoft . Co do powodu „T” - zobacz to pytanie .
Krótko mówiąc, pozwala na stworzenie klasy / metody, która jest wyspecjalizowana do określonego typu. Klasycznym przykładem jest System.Collections.Generic.List<T>klasa. Działa tak samo, jak System.Collections.ArrayListpoza tym, że pozwala na przechowywanie tylko danego typu T. Zapewnia to bezpieczeństwo typów - nie możesz (przypadkowo lub w inny sposób) umieszczać elementów niewłaściwego typu na swojej liście. Przestrzeń System.Collections.Genericnazw zawiera kilka innych różnych typów kolekcji, które z tego korzystają.
Jeśli chodzi o to, gdzie możesz go użyć - to zależy od Ciebie. Istnieje wiele przypadków użycia, które pojawiają się od czasu do czasu. Przeważnie jest to coś w rodzaju własnej kolekcji (jeśli te wbudowane nie wystarczą), ale naprawdę może to być wszystko.