.net – 基类中的事件
发布时间:2020-12-17 07:29:38 所属栏目:百科 来源:网络整理
导读:好的,所以我有一个基类来声明事件StatusTextChanged.我的孩子班,当然不能直接举起这个活动. 所以我结束了这样的事情(为简单起见): Public MustInherit Class FooBase Public Event StatusTextChanged(ByVal StatusText As String) Protected Sub RaiseStatu
好的,所以我有一个基类来声明事件StatusTextChanged.我的孩子班,当然不能直接举起这个活动.
所以我结束了这样的事情(为简单起见): Public MustInherit Class FooBase Public Event StatusTextChanged(ByVal StatusText As String) Protected Sub RaiseStatusTextChangedEvent(ByVal StatusText As String) RaiseEvent StatusTextChanged(StatusText) End Sub End Class 然后在我打电话的儿童班 编辑:VB.NET或C#,它的工作方式基本相同. 编辑:所以在响应之后,我在基类中,然后在子类中设置StatusText属性… Public Event StatusTextChanged(ByVal StatusText As String) Private _StatusText As String = "Idle." Public Property StatusText() As String Get Return _StatusText End Get Protected Set(ByVal value As String) RaiseEvent StatusTextChanged(value) End Set End Property 解决方法
我会说你非常接近推荐的方式(或者至少是我推荐的方式).
在给出选择的情况下,我会对您的代码进行一些更改: >使StatusTextChanged受保护可覆盖 结果代码: 自定义eventargs类: Public Class TextEventArgs Inherits EventArgs Private _text As String Public Sub New(ByVal text As String) _text = text End Sub Public ReadOnly Property Text() As String Get Return _text End Get End Property End Class 基类中的事件实现: Public Event StatusTextChanged As EventHandler(Of TextEventArgs) Protected Overridable Sub OnStatusTextChanged(ByVal e As TextEventArgs) RaiseEvent StatusTextChanged(Me,e) End Sub …最后是一个提升事件的代码行;无论是在基类中还是在继承它的类中: OnStatusTextChanged(New TextEventArgs("some text")) 这将更符合.NET框架其余部分中事件的设计方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |