2010-06-06 51 views
2

我從msdn學到了用arraylist填充listbox控件的例子。 http://msdn.microsoft.com/en-us/library/1818w7we(v=VS.100).aspx如何從函數返回數組列表?

我想創建一個功能,這將給數組列表返回USStates和使用返回值作爲數據源爲ListBox1的

Dim USStates As New ArrayList() 
    USStates.Add(New USState("Alabama", "AL")) 
    USStates.Add(New USState("Washington", "WA")) 
    USStates.Add(New USState("West Virginia", "WV")) 
    USStates.Add(New USState("Wisconsin", "WI")) 
    USStates.Add(New USState("Wyoming", "WY")) 
    ListBox1.DataSource = USStates 

    ListBox1.DisplayMember = "LongName" 
    ListBox1.ValueMember = "ShortName 

我試圖創建一個功能,如:

Public Shared Function FillList() As ArrayList() 
    Dim USStates As New ArrayList() 
    USStates.Add(New USState("Alabama", "AL")) 
    USStates.Add(New USState("Washington", "WA")) 
    USStates.Add(New USState("West Virginia", "WV")) 
    USStates.Add(New USState("Wisconsin", "WI")) 
    USStates.Add(New USState("Wyoming", "WY")) 
    return usstates 
end function 

但它說錯誤: 類型'System.Collections.ArrayList'的值不能被轉換爲'System.Collections.ArrayList'的一維數組。

回答

6

確保函數的返回類型是正確的(只是ArrayList,不ArrayList()第一意味着你是返回一個ArrayList,第二,你是返回一個陣列ArrayList的:

Public Shared Function FillList() As ArrayList 
    Dim USStates As New ArrayList() 
    USStates.Add(New USState("Alabama", "AL")) 
    USStates.Add(New USState("Washington", "WA")) 
    USStates.Add(New USState("West Virginia", "WV")) 
    USStates.Add(New USState("Wisconsin", "WI")) 
    USStates.Add(New USState("Wyoming", "WY")) 
    return usstates 
end function 
+0

thnx oded這是您的好解釋:) – KoolKabin 2010-06-06 12:55:21

0

您需要從函數定義的末尾刪除括號。

Public Shared Function FillList() as ArrayList