我拥有这个公共财产的课程
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
当我调用add方法时,我必须在添加票证之前执行一些逻辑。
逻辑不是一个重要的主题,但我最终必须删除一些票,然后添加新票。
我该怎么做?
答案 0 :(得分:8)
您需要按如下方式派生自己的集合:
C#版本:
public class MyList<T> : Collection<T>
{
protected override void InsertItem(int index, T item)
{
// your checks here
base.InsertItem(index, item);
}
}
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