Це було б "загальне". Як люди вже згадували, існує пояснення цієї концепції від Microsoft . Щодо того, чому "Т" - дивіться у цьому питанні .
У двох словах, це дозволяє створити клас / метод, який спеціалізується на певному типі. Класичним прикладом є System.Collections.Generic.List<T>клас. Це те саме System.Collections.ArrayList, за винятком того, що дозволяє зберігати лише елементи типу T. Це забезпечує безпеку типу - ви не можете (випадково чи іншим чином) помістити елементи неправильного типу у свій список. System.Collections.GenericПростір імен містить кілька інших різних типів колекції , які роблять використання цього.
Що стосується того, де ви могли б це використовувати - це вирішувати вам. Є багато випадків використання, які час від часу з’являються. Здебільшого це якась саморобна колекція (коли вбудованих недостатньо), але насправді це може бути що завгодно.