在VB中帮助Generics

时间:2011-08-09 15:04:26

标签: .net vb.net generics

我是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))不足够?

2 个答案:

答案 0 :(得分:5)

在Java中,这将是:

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

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

答案 1 :(得分:1)

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

我的意思是两种不同类型的列表:

List(of string)
List(of integer)