【问题标题】:terminology for what a class does with generic type parameter类对泛型类型参数所做的术语
【发布时间】:2013-07-03 14:07:35
【问题描述】:

给定类MyClass<T> 用泛型类型参数描述MyClass 做什么 的正确术语是什么?

实现?用途?这些听起来都不对。我浏览了有关泛型的 MS 文档,他们似乎在不使用术语的情况下谈论它。

在编写有关检查泛型类型参数类型以查看它是否可从特定基类型分配的代码的评论时,我想到了我的问题。我本来打算这样说:“检查泛型类 verbs 是否为指定类型”。我可以换种说法,但想知道是否有一个好的动词可以使用。

【问题讨论】:

  • 您的问题不清楚。你会怎么用这样的动词?
  • 函数对参数有什么作用?也许接受? “泛型类型/函数接受泛型类型参数”。
  • 这里有@SLaks:“你能用它来造句吗”?
  • @Slaks -- 查看我的编辑。 "检查泛型类动词是否指定类型"
  • 只要“它使用类型参数”就可以了。

标签: c# .net generics


【解决方案1】:

T 参数是类型的一部分,所以你应该只说 MyClass of T。它对T 没有任何作用。

【讨论】:

  • 您可以将 T 视为 MyClass 的一个参数,因此 MyClass 肯定可以对 T “做”一些事情。例如,您可以将成员强制转换为类型 T。
【解决方案2】:

从简单的角度来看,您可以说泛型函数接受泛型类型参数。

你可以把它专门化为contains,但如果你想花哨的话,你可能会说,一个泛型类型reifies一个类型参数。

来自维基百科的文章:

"在 C# 中,具体化用于制作参数多态性 作为该语言的一流特性的泛型实现"


definition on Dictionary.com

re·i·fy/ˈriəˌfaɪ, ˈreɪ-/

动词(与宾语一起使用),re·i·fied,re·i·fy·ing。
转化为具体事物或视为具体事物:具体化一个概念。

【讨论】:

  • 我可能会坚持使用 /uses/ 作为我的评论,但 /reifies/ 是我正在寻找的。谢谢。
【解决方案3】:

它在 MSDN 文档中的使用方式是MyClass of T

【讨论】:

    【解决方案4】:

    它对 T 没有任何作用。T 是它的参数。

    void doNothing(int i)
    {
    }
    

    这和我有什么关系?没有什么。 i 是它的参数。

    【讨论】:

      【解决方案5】:

      系统将开放泛型类型MyClass<> 绑定到特定类型(例如Int32)以生成封闭泛型类型MyClass<Int32>。前一个类仅有效地用作系统生成后者的模板;后者具有内置的类型。请注意,从开放式泛型生成封闭式泛型是由系统完成的,而不是由类本身完成的。一个类可以包含对其泛型参数的约束,但不能控制或参与该过程。

      【讨论】:

      • 所以你建议更正确的说法是“泛型类/绑定到/类型”而不是“泛型类/使用/类型”?
      • @Jos.Schlitz:这可能是最好的术语,尽管MyClass<Int32> 在绑定完成之前实际上并不存在;它是MyClass<> 与类型参数Int32 绑定的产物。
      【解决方案6】:

      类型参数化就是我所说的。还要键入规范延迟。

      【讨论】:

      • 所以 MyClass 参数化了类型并推迟了它的规范。
      【解决方案7】:

      由于 List<int> 是“列表 of int”,因此您要查找的“动词”可能是“泛型类 属于指定类型”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多