0

在 Visual Basic.net 中,如果我有一个 T 列表,其中 Type 是一个始终具有 .Name 属性的对象,我如何编写一个返回 .Name 值的函数?

这是我的代码:

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

我收到以下错误:

姓名'不是'T'的成员

4

1 回答 1

0

您需要在泛型方法上指定一个约束。具体来说,您GetListOfListItemNames(Of T)应该定义为您希望包含在列表中的类型GetListOfListItemNames(Of T As BaseType)BaseType

我对 VB.Net 不太熟悉,所以我的语法可能不正确。但对通用约束的需求不是:

有关详细信息,请参阅:http: //msdn.microsoft.com/en-us/library/w256ka79.aspx

于 2013-10-11T05:27:49.450 回答