【问题标题】:What does the term "Naked type constraint" refer to?术语“裸类型约束”指的是什么?
【发布时间】:2009-11-13 16:57:40
【问题描述】:

最近我在泛型的上下文中阅读了一个术语“裸类型约束”。它有什么作用 意思是?我们在哪里使用它?

【问题讨论】:

    标签: c# generics type-constraints


    【解决方案1】:

    顺便说一句,我觉得奇怪的是,这个有点下流的术语居然成功地出现在了 MSDN 文档中。我们当然不会在 C# 编译器团队中将这些约束称为“裸类型约束”,我感到震惊、震惊!几年前发现这就是文档所说的。我们通常称它们为“类型参数约束”。我不知道这个术语最初是如何进入文档的。那里可能有一个有趣的故事。

    【讨论】:

      【解决方案2】:

      来自MSDN

      约束描述 其中 T : U 为 T 提供的类型参数必须是或派生自 为 U 提供的参数。这称为裸类型 约束。

      当泛型类型参数用作约束时,称为裸类型约束。当具有自己类型参数的成员函数必须将该参数约束为包含类型的类型参数时,裸类型约束非常有用,如下例所示:

      class List<T>
      {
          void Add<U>(List<U> items) where U : T {/*...*/}
      }
      

      【讨论】:

      • 我以前也从未听说过这个术语,尽管我已经用过这种约束类型几次了。
      • 在你的例子中,裸类型是T还是U?
      • 我认为裸类型是U,我已经编辑了原始答案,因为它颠倒了前面解释中的顺序
      【解决方案3】:

      "当泛型类型参数用作约束时,它被称为裸类型约束。当具有自己类型参数的成员函数必须将该参数约束为包含类型的类型参数时,裸类型约束很有用"

      http://msdn.microsoft.com/en-us/library/d5x73970.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-07
        • 2022-10-15
        • 2017-01-21
        • 1970-01-01
        • 2012-09-10
        相关资源
        最近更新 更多