我想为List类型创建一个扩展类,以便用户可以这样做
ListObject.AddDistinct("value")
Run Code Online (Sandbox Code Playgroud)
我希望该方法适用于所有类型的列表,因此:
List(Of Integer)
List(Of String)
Run Code Online (Sandbox Code Playgroud)
等我的扩展是
Module ListsExtensions
<Extension()>
Public Sub AddDistinct(ByRef ls As List(Of Type), ByVal obj As Type)
If Not ls.Contains(obj) Then ls.Add(obj)
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
我把它定义为Type并且还尝试了对象,但是当我有一个字符串列表时它们都不可访问.
如果我将它设置为字符串然后出现..但我想要更通用的东西,并将适用于所有列表.我该如何定义它?
List(Of AnyType)被称为泛型类.它是如何使用任何类型的类,但仍然是强类型而不是使用Object.
为了使您的扩展方法成为通用的,您需要像这样声明泛型类型(我使用的是T代替Type此处遵循.NET命名约定):
<Extension()>
Public Sub AddDistinct(Of T)(ByRef ls As List(Of T), ByVal obj As T)
If Not ls.Contains(obj) Then ls.Add(obj)
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |