Как отловить изменение количества элементов стека - Visual Basic .NET
Формулировка задачи:
Привет. У меня в программе коллекция типа стек. На стек данные кладутся в одной процедуре, а снимаются в нескольких. Для статистики нужно отслеживать количество элементов в стеке. Как отловить изменение количества элементов стека (StackCountChanged)?
Решение задачи: «Как отловить изменение количества элементов стека»
textual
Листинг программы
Public Class Form1
Private mStack As New MyStack(Of String)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Push"
Button2.Text = "Pop"
Button3.Text = "Peek"
Button4.Text = "Count"
AddHandler mStack.CountChanged, AddressOf mStackCountChanged
End Sub
Private Sub mStackCountChanged()
MsgBox("mStackCountChanged")
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Static i As Integer = 0
i += 1
mStack.Push("Item=" & i.ToString)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
MsgBox("Pop " & mStack.Pop)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
MsgBox("Peek " & mStack.Peek)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
MsgBox("Count=" & mStack.Count)
End Sub
End Class
Public Class MyStack(Of T)
Inherits Stack(Of T)
Public Event CountChanged()
Protected Overloads Sub Push(ByVal o As T)
MyBase.Push(o)
RaiseEvent CountChanged()
End Sub
End Class