可能重复:
C# Language: generics, open/closed, bound/unbound, constructed
在使用C#中的反射做一些事情时,我注意到某些类型具有类型定义,例如。
Foo<,>
这种符号的官方术语是什么?
答案 0 :(得分:7)
缺少通用参数的类型名称(例如List<>
)称为未绑定的泛型类型。 This question对未绑定的泛型类型以及一些相关术语进行了很好的总结。
根据您描述这些类型的上下文,可能会使用其他一些术语。 C#规范使用术语“未绑定的泛型类型”来指代T<>
之类的内容。 .Net框架似乎更喜欢术语“泛型类型定义”(如dasblinkenlight指出的那样,另见Type.GetGenericTypeDefinition()
)或“开放泛型类型”(参见this文章)。
答案 1 :(得分:4)
这是一种表示泛型类型定义的类型:
var genType = typeof(Foo<int,int>);
var genTypeDef = genType.GetGenericTypeDefinition(); // Returns typeof(Foo<,>)