我正在嘗試學習類擴展,但在定義我的新方法和函式中接受的變數型別時遇到了困難。我有一個簡單的方法,我想將它添加到 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 )。對于數字運算,我聽說我應該為每個接受的數字型別創建該方法的重復版本。但是我想接受任何型別的串列,并且不想創建一百個這種方法。
我寫什么?
uj5u.com熱心網友回復:
(促進 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()
uj5u.com熱心網友回復:
嘗試這個:
Imports System.Runtime.CompilerServices
Module ListExtensions
<Extension()>
Sub RemoveLast(FromList As List(Of T))
FromList.RemoveAt(FromList.Count - 1)
End Sub
End Module
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/335616.html
