来自C#5.0规格
4.4构造类型
泛型类型声明本身表示一种未绑定的泛型类型,它通过应用类型参数用作形成许多不同类型的"蓝图".类型参数写在尖括号(<和>)内,紧跟在泛型类型的名称后面.未绑定的泛型类型只能在typeof-expression(第7.6.11节)中使用.包含至少一个类型参数的类型称为构造类型.构造类型可以在可以出现类型名称的语言中的大多数地方使用.未绑定的泛型类型只能在typeof-expression(第7.6.11节)中使用.
构造类型也可以在表达式中用作简单名称(第7.6.2节)或访问成员(第7.6.4节).
"构造类型"的概念是否与"有界通用类型"的概念相同?
4.4.3绑定和未绑定类型
术语" 未绑定类型"是指非泛型类型或非绑定泛型类型.术语绑定类型是指非泛型类型或构造类型.
未绑定类型是指由类型声明声明的实体.未绑定的泛型类型本身不是类型,不能用作变量,参数或返回值的类型,也不能用作基类型.可以引用未绑定泛型类型的唯一构造是typeof表达式(第7.6.11节).
非泛型类型是非绑定类型还是绑定类型?
"构造类型"的概念是否与"有界通用类型"的概念相同?
是的,以你的错字为模.你的意思是说"绑定泛型类型",而不是"有界泛型类型".
非泛型类型是非绑定类型还是绑定类型?
是.
为什么这些术语如此冗余/重复/错综复杂?
这些术语是为了方便规范作者和编译器团队而发明的.你已经确定的唯一冗余是构造等于绑定泛型,这对我来说似乎很合理.我没有看到任何重复或卷积.
如果这些术语看起来很复杂,那么我就向你提出现代业务线OO语言的类型理论是一个复杂的主题 ; 它的行话反映了这种复杂性.
以这种方式思考它可能会有所帮助.假设我们有一个类C,它接受n个参数,对于n> = 0:
显然,如果n == 0,则C同时是绑定类型和非绑定类型.
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |