На практике терминология не имеет большого значения - я не могу вспомнить, когда в последний раз мне приходилось беспокоиться об этом , за исключением при попытке написать об этом.
- Для типа unbound не заданы аргументы типа
- A сконструированный тип имеет по крайней мере один аргумент типа, указанный
- Параметр типа открытый тип
- Тип массива с открытым типом элемента - открытый тип
- открытый составной тип имеет по крайней мере один аргумент типа, который является открытым типом
- A закрытый тип - любой тип, который не открыт
(Есть дополнительные правила для вложенных типов. Обратитесь к разделу 4.4 спецификации C # 3.0 за подробностями.)
В качестве примера открытого сконструированного типа рассмотрим:
public class NameDictionary<T> : Dictionary<string, T>
Базовый класс typeof(NameDictionary<>)
:
- Создано, поскольку оно определяет аргументы типа
- Открыть, поскольку второй тип аргумента (
T
) является открытым типом
Документы MSDN для Type.IsGenericType
имеют довольно полезный столик.
Просто повторюсь, это практически неважно при повседневном использовании.
Я обычно за то, чтобы знать правильную терминологию - особенно для таких вещей, как «передача по ссылке» и т. Д. - но в этом случае это действительно, действительно, не очень часто встречается. Я хотел бы активно отговорить вас от беспокойства об этом:)