处理静态类的事件



我对 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!

相关内容

  • 没有找到相关文章

最新更新