【问题标题】:Help with Generics in VBVB中的泛型帮助
【发布时间】:2011-08-09 15:04:26
【问题描述】:

我是 VB 新手。我来自 Java 背景。在以下代码中

Sub PrintList(Of T)(ByVal list As List(Of T)) For Each obj As T In list Console.Write(obj.ToString() + " ") Next Console.WriteLine() End Sub

有人可以帮我理解Sub PrintList(Of T)(ByVal list As List(Of T)) 的含义吗? 为什么需要(Of T) 部分?为什么(ByVal list As List(Of T)) 不够用?

【问题讨论】:

    标签: .net vb.net generics


    【解决方案1】:

    在 Java 中,这类似于:

    public static <T> void printList(List<T> list)
    

    PrintList 之后的(Of T) 相当于 Java 版本中void 之前的&lt;T&gt;。换句话说,它声明了泛型方法的类型参数。

    【讨论】:

      【解决方案2】:

      除了 Jon Skeet 所说的,这个 sub 似乎能够接受任何类型的列表。如果 PrintList(Of T) 只是 PrintList,那么您将无法指定要用于参数的列表类型。在不重载 sub 的情况下,您不能再对这个 sub 进行 2 次调用来获取两种不同类型的列表。

      我所说的两种不同类型的列表是指:

      List(of string)
      List(of integer)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2013-08-13
        • 2020-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多