2014-04-03 38 views
0
Friend Shared Sub dumpRows(rowList As System.Collections.Generic.List, msg As [String]) 
      msg = If((msg Is Nothing), "***** ", "***** " & msg) 
      Dim row As [Object] = Nothing 
      info(vbLf & msg) 
      info("** Begin Row Dump:") 
      Dim iter As Iterator = rowList.iterator() 
      While iter.hasNext() 
       row = iter.[next]() 
       info(row.ToString()) 
      End While 
      info("** End Row Dump." & vbLf) 
     End Sub 

在第一行,我收到錯誤:太少參數system.collections.generic.list(的T)爲AC#太少參數vb.net轉換

+1

我不使用VB.NET,但你不應該指定列表的類型? –

+0

這裏有問題嗎? – kolosy

回答

0

它需要是System.Collections.Generic.List(Of Object)其中Object是列表中包含的實際類型。

0

這是我會怎麼寫呢:

Friend Shared Sub dumpRows(rowList As List(Of Object), msg As String) 
    msg = "***** " & If(msg, String.Empty) 
    info(vbLf & msg) 
    info("** Begin Row Dump:") 
    Dim iter As Iterator = rowList.iterator() 
    While iter.hasNext() 
     Dim row As Object = iter.[next]() 
     info(row.ToString()) 
    End While 
    info("** End Row Dump." & vbLf) 
End Sub 

正如其他人所指出的,你需要聲明一下鍵入List包含。

其他一些注意事項:

  1. 我刪除了從類名的前面 的System.Collections.Generic命名空間,因爲我相信這個命名空間由 默認導入的。您可能需要添加它,但我對此表示懷疑。

  2. 我不知道爲什麼您使用的轉換工具將方括號放在類名String的周圍。他們沒有必要。

  3. 既然你基本上只是設置msg有5個星號在前面的任何前面,你可以使用三元條件的合併代替 。這使得代碼更加清潔IMO。

  4. 如果僅在While循環內使用,則沒有理由在該範圍的大範圍內聲明row