什么是空通用参数的术语<,>在C#?

时间:2012-11-28 03:08:51

标签: c# generics

  

可能重复:
  C# Language: generics, open/closed, bound/unbound, constructed

在使用C#中的反射做一些事情时,我注意到某些类型具有类型定义,例如。

Foo<,>

这种符号的官方术语是什么?

2 个答案:

答案 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<,>)