如何扩展任何类型的列表 class

How to extend the List class Of any type

我正在尝试学习 class 扩展,但在定义我的新方法和函数中接受的变量类型时 运行 遇到了困难。我有一个简单的方法,我想将其添加到 List 对象中,它是从列表中删除最后一个元素的快捷方式。

Imports System.Runtime.CompilerServices
Module ListExtensions
    <Extension()>
    Sub RemoveLast(FromList As List(Of ))
        FromList.RemoveAt(FromList.Count - 1)
    End Sub
End Module

List(Of )括号里不知道写什么。对于数字操作,我听说我应该为每个接受的数字类型创建该方法的重复版本。但是我想接受任何类型的列表,并且不想创建一百个这种方法。

我写什么?

(将 GSerg 的评论提升为答案...)

您可以将泛型方法编写为扩展方法;事实上,Linq 都是通用的扩展方法。结果将是这样的:

<Extension>
Public Sub RemoveLast(Of T)(ByVal this As List(Of T))
    this.RemoveAt(this.Count - 1)
End Sub

通用参数将在调用中推断出来,您无需指定它,例如这将起作用:

Dim myList As New List(Of Integer) From {1, 2, 3, 4}
myList.RemoveLast()