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