''' <summary>
''' Transforms an item to a list of single element containing this item.
''' '</summary>
<Extension()> _
Public Function ToList(Of T)(ByVal item As T) As List(Of T)
Dim tList As New List(Of T)
tList.Add(item)
Return tList
End Function
使用
Dim buttonControl As New System.Windows.Forms.Button
Dim controls = buttonControl.ToList(Of System.Windows.Forms.Control)()
编译时错误(在最后一行)
扩展方法'公共功能 ToList()As System.Collections.Generic.List(Of T)' 在'... Utils'中定义的不是通用的 (或没有自由类型参数)和 所以不能有类型参数。
是吗?
答案 0 :(得分:1)
试试这个:
<Extension()> _
Public Function ToList(Of TItem, TList As {New, List(Of TItem)})(ByVal item As TItem) As TList
Dim tList As New TList
tList.Add(item)
Return tList
End Function
基本上你的返回类型是泛型(声明为List(of T))。这里的函数decaration执行它,以便返回类型是正在扩展的类型的列表。
答案 1 :(得分:0)
试试这个。
<Extension()>
Public Function ToList(Of T)(ByVal Item As Object) As List(Of T)
Dim tlist1 As New List(Of T)
tlist1.Add(Item)
Return tlist1
End Function