泛型开放和封闭构造类型
最近,我注意到泛型构造类型可以打开和关闭。但是我不明白它们的真正含义。你能举一个简单的例子吗?
回答:
在实践中,术语并没有太大关系-我不记得上一次不得不担心它的时候了, 除了 尝试编写它时。
- 一个 未绑定 类型已指定类型的参数
- 甲 构造 类型具有指定的至少一个类型参数
- 类型参数是 开放类型
- 元素类型为开放的数组类型为 开放类型
- 一个 开放的 构造类型具有至少一种类型的参数,它是一个开放型
- 甲 密闭 型是任何类型的,其不开
(嵌套类型还有其他规则。有关详细信息,请参阅C#3.0规范第4.4节。)
作为开放构造类型的示例,请考虑:
public class NameDictionary<T> : Dictionary<string, T>
的基类typeof(NameDictionary<>)
为:
- 由于指定类型参数而构造
- 打开,因为第二个类型参数(
T
)是打开类型
的MSDN文档Type.IsGenericType
有一个非常有用的小表。
只是重申一下,这在日常使用中几乎完全不重要。
我通常赞成了解正确的术语-尤其是诸如“通过引用”之类的术语-但在这种情况下,它的确确实很少出现。我想积极劝阻您不要担心:)
以上是 泛型开放和封闭构造类型 的全部内容, 来源链接: utcz.com/qa/410317.html