我带着这个公共财产来上课
Private _tickets As List(Of Ticket)
Public Property Ticekts() As List(Of Ticket)
Get
Return _tickets
End Get
Set(ByVal value As List(Of Ticket))
_tickets = value
End Set
End Property
Run Code Online (Sandbox Code Playgroud)
当我调用add方法时,我必须在添加票证之前执行一些逻辑.
逻辑不是一个重要的主题,但我最终必须删除一些票,然后添加新票.
我怎样才能做到这一点?
您需要按如下方式派生自己的集合:
C#版本:
public class MyList<T> : Collection<T>
{
protected override void InsertItem(int index, T item)
{
// your checks here
base.InsertItem(index, item);
}
}
Run Code Online (Sandbox Code Playgroud)
List<T>没有虚拟方法,因此您无法覆盖添加. Collection<T>有虚拟的InsertItem,SetItem,RemoveItem和ClearItems.
VB.NET版本:
Public Class List(Of T)
Inherits Collection(Of T)
Protected Overrides Sub InsertItem( index As Integer, item As T )
'your checks here
MyBase.InsertItem(index, item)
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)