Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AddHandler 变量改变事件, AddressOf 变量改变处理程序
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
设置变量值("A", 100)
设置变量值("B", 200)
设置变量值("C", 300)
Dim 当前A的值 As Object = 获取变量值("q")
Console.WriteLine($"变量 '{当前A的值}'")
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
显示所有被监控变量名和值()
End Sub
Public Sub 变量改变处理程序(ByVal 变量名 As String, ByVal 新值 As Object)
Console.WriteLine($"变量 '{变量名}' 的值已改变为:{新值}")
End Sub
Public Delegate Sub 变量改变委托(ByVal 变量名 As String, ByVal 新值 As Object)
Public Event 变量改变事件 As 变量改变委托
Private 变量字典 As New Dictionary(Of String, Object)
Public Sub 设置变量值(ByVal 变量名 As String, ByVal 值 As Object)
Dim 当前值 As Object = Nothing
If 变量字典.TryGetValue(变量名, 当前值) Then
If Not 当前值.Equals(值) Then
变量字典(变量名) = 值
RaiseEvent 变量改变事件(变量名, 值)
End If
Else
变量字典.Add(变量名, 值)
RaiseEvent 变量改变事件(变量名, 值)
End If
End Sub
Public Function 获取变量值(ByVal 变量名 As String) As Object
If 变量字典.ContainsKey(变量名) Then
Return 变量字典(变量名)
Else
Return Nothing
End If
End Function
Public Sub 显示所有被监控变量名和值()
For Each kvp As KeyValuePair(Of String, Object) In 变量字典
Console.WriteLine($"变量名: {kvp.Key}, 值: {kvp.Value}")
Next
End Sub
End Class