Объект Type в C#
Свойство IsClass истинно, если тип является классом. Свойство IsGenericType истинно для обобщённого типа, например для списка List<int>.
Такой обобщённый тип с уже подставленным аргументом называют закрытым. List<int> - это список именно целых, а не пустой шаблон List<>. Один объект Type описывает один конкретный тип.
Проверим список целых. Обе строки в консоли - True: List<int> является классом и обобщённым типом:
Type t = typeof(List<int>);
Console.WriteLine(t.IsClass);
Console.WriteLine(t.IsGenericType);
Для Dictionary<string, int> выведите, является ли тип обобщённым.