在vb.net中(不是c)…
我想创建一个不能被侦听器取消的事件。就像您可以取消WinForms窗体的关闭事件一样,在这种情况下,窗体不会关闭。
我已经实现了一个从EventArgs派生的类,该类具有可设置的Cancel属性,如下所示:
Public Class AnnounceNavigateEventArgs
Inherits EventArgs
Private _cancel As Boolean = False
''' <summary>
''' Initializes a new instance of the AnnounceNavigateEventArgs class.
''' </summary>
Public Sub New(ByRef cancel As Boolean)
_cancel = cancel
End Sub
Public Property Cancel() As Boolean
Get
Return _cancel
End Get
Set(ByVal value As Boolean)
_cancel = value
End Set
End Property
End Class
请注意,我正在将cancel参数byref传递给构造函数。
我安装的侦听器正在将属性设置为cancel=true。我认为byref意味着“取消”和“取消”都将指向堆栈上的相同位置,因此设置“取消”为“真”将使“取消”为“真”。但这不是我的行为。_在setter中,cancel变为true,但我猜构造函数的参数仍然为false。
在vb.net中,正确的方法是什么?
塞思