Открытый generic-тип в C#
Свойство IsGenericTypeDefinition истинно для открытого шаблона: аргументы ещё не подставлены. У закрытого Dictionary<string, int> они уже есть, и свойство ложно.
Метод GetGenericArguments() возвращает параметры открытого шаблона. В примере печатается длина этого списка: сколько позиций ещё ждут аргумент.
Проверим открытый словарь с двумя пустыми позициями:
Type open = typeof(Dictionary<,>);
Console.WriteLine(open.IsGenericTypeDefinition);
Console.WriteLine(open.GetGenericArguments().Length);
Для открытого определения List<> выведите число параметров типа.