我对 VB.NET 事件的基本知识有问题。我想要一个静态类,但 VB.NET 它不存在,等效的是Module
.所以我有一个模块,里面有一些属性(当然是静态的)。例:
Public Module MyModule
Private _value As Integer
Public Event ValueChanged()
Public Property Value() As Integer
Get
Return _value
End Get
Set(ByVal value As Integer)
_value = value
RaiseEvent ValueChanged()
End Set
End Property
End Module
在我的情况下,我想处理更改_value
.此代码应该没问题。但是如果我想在另一个类中处理它:
Public Class MyClass
Public Sub Method_ValueChanged() Handles MyModule.ValueChaged
'Do something...
End Sub
End Class
这是一个问题,因为 MyModule 必须声明为 WithEvents
但 MyModule 是静态的,所以不能这样做。你能告诉我如何处理来自另一个类的静态类事件吗?谢谢。
你必须使用 AddHandler
.
例:
Module A
Private _value As Integer
Public Event ValueChanged()
Public Property Value() As Integer
Get
Return _value
End Get
Set(ByVal value As Integer)
_value = value
RaiseEvent ValueChanged()
End Set
End Property
End Module
Module B
Sub Main
AddHandler ValueChanged, AddressOf Method_ValueChanged
A.Value = 12
End Sub
Public Sub Method_ValueChanged()
Console.WriteLine("Changed!")
End Sub
End Module
运行此操作将打印Changed!
。