2013-10-11 64 views
0

在Visual Basic.net中,如果我有一個T的列表,其中Type是始終具有.Name屬性的對象,那麼如何編寫一個返回.Name值的函數?T對象列表的屬性

這裏是我的代碼:

Public Function GetListOfListItemNames(Of T)(ListOfItems As List(Of T)) As List(Of String) 
    Dim ListToReturn As New List(Of String) 
    For x = 0 To ListOfItems.Count - 1 
     ListToReturn.Add(ListOfItems.Item(x).Name) 
    Next 
    Return ListToReturn 
End Function 

我收到以下錯誤:

Name' is not a member of 'T'

回答

0

你需要指定在泛型方法的約束。具體而言,您的GetListOfListItemNames(Of T)應定義爲GetListOfListItemNames(Of T As BaseType)其中BaseType是您希望包含在列表中的類型。

我很不熟悉VB.Net,所以我的語法可能不正確。但對通用約束的需求不是:

有關詳細信息,請參閱:http://msdn.microsoft.com/en-us/library/w256ka79.aspx

+0

太棒了。謝謝,所有工作。 – Simon