首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构造类型、有界类型和无界类型的意义?

构造类型、有界类型和无界类型的意义?
EN

Stack Overflow用户
提问于 2017-04-26 23:40:02
回答 1查看 485关注 0票数 3

来自C# 5.0规范

4.4构造类型 泛型类型声明本身表示--一个未绑定的泛型类型,通过应用类型参数,它被用作形成许多不同类型的“蓝图”。类型参数是紧跟在泛型类型名称后面的尖括号(<和>)中写入的。未绑定的泛型类型只能在类型表达式中使用(§7.6.11)。包含至少一个类型参数的类型称为(构造的类型)。构造的类型可以在语言中的大多数地方使用,在语言中可以出现类型名称。未绑定的泛型类型只能在类型表达式中使用(§7.6.11)。 构造的类型也可以作为简单名称(§7.6.2)或访问成员(§7.6.4)在表达式中使用。

“构造类型”的概念与“有界泛型”的概念是一样的吗?

4.4.3绑定和未绑定类型 术语unbound type指非泛型类型或未绑定泛型类型。术语绑定类型指非泛型类型或构造类型。 未绑定类型指由类型声明声明的实体。--未绑定的泛型类型本身不是类型,不能用作变量、参数或返回值的类型,也不能用作基类型。唯一可以引用未绑定泛型类型的构造是表达式类型(§7.6.11)。

非泛型类型是非绑定类型还是绑定类型?

EN

回答 1

Stack Overflow用户

发布于 2017-04-26 23:51:44

“构造类型”的概念与“有界泛型”的概念是一样的吗?

是的,把你的打字打错了。您的意思是说“绑定泛型类型”,而不是“有界泛型类型”。

非泛型类型是非绑定类型还是绑定类型?

是。

为什么这些术语如此多余/重复/复杂?

这些术语是为了方便规范作者和编译器团队而发明的。您确定的唯一冗余是构造等于绑定泛型,这在我看来是相当合理的。我没有看到任何重复或卷积。

如果这些术语看起来很复杂的话,那么我向你们提出,现代商业OO语言的类型理论是一个复杂的学科;它的行话反映了这种复杂性。

用这种方式思考可能会有帮助。假设我们有一个C类,它接受n个类型的参数,对于n >= 0:

  • 概念C-即取n型参数是一种未绑定类型.
  • 概念concept type参数是一个绑定类型.
  • 绑定泛型类型必须是用类型参数构造的泛型类型,因此我们将其称为构造类型。

很明显,如果n个== 0,那么C同时是一个绑定类型和一个非绑定类型。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43646302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档