2013-10-11 37 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