Как отловить изменение количества элементов стека - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д