2011-08-09 92 views
2

我是VB新手。我来自Java背景。在下面的代码在VB中使用泛型的帮助

 

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

回答

5

在Java中,这将是这样的:

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

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

1

根据Jon Skeet的说法,这个小组似乎能够采取任何类型的列表。如果PrintList(Of T)只是PrintList,那么你会被卡住指定你想用什么类型的List作为你的参数。您不能再有2次调用此子接受两种不同类型的列表,而不会重载子接口。

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

List(of string) 
List(of integer)