Как отловить изменение количества элементов стека - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Привет. У меня в программе коллекция типа стек. На стек данные кладутся в одной процедуре, а снимаются в нескольких. Для статистики нужно отслеживать количество элементов в стеке. Как отловить изменение количества элементов стека (StackCountChanged)?

Решение задачи: «Как отловить изменение количества элементов стека»

textual
Листинг программы
  1. Public Class Form1
  2.  
  3.     Private mStack As New MyStack(Of String)
  4.  
  5.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  6.         Button1.Text = "Push"
  7.         Button2.Text = "Pop"
  8.         Button3.Text = "Peek"
  9.         Button4.Text = "Count"
  10.  
  11.         AddHandler mStack.CountChanged, AddressOf mStackCountChanged
  12.     End Sub
  13.  
  14.     Private Sub mStackCountChanged()
  15.         MsgBox("mStackCountChanged")
  16.     End Sub
  17.  
  18.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  19.         Static i As Integer = 0
  20.         i += 1
  21.         mStack.Push("Item=" & i.ToString)
  22.     End Sub
  23.  
  24.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  25.         MsgBox("Pop " & mStack.Pop)
  26.     End Sub
  27.  
  28.     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
  29.         MsgBox("Peek " & mStack.Peek)
  30.     End Sub
  31.  
  32.     Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  33.         MsgBox("Count=" & mStack.Count)
  34.     End Sub
  35. End Class
  36.  
  37. Public Class MyStack(Of T)
  38.     Inherits Stack(Of T)
  39.  
  40.     Public Event CountChanged()
  41.  
  42.     Protected Overloads Sub Push(ByVal o As T)
  43.         MyBase.Push(o)
  44.  
  45.         RaiseEvent CountChanged()
  46.     End Sub
  47. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.429 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы