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