加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

“自定义事件”如何在VB.Net中运行?

发布时间:2020-12-17 00:20:19 所属栏目:大数据 来源:网络整理
导读:在C#中如果我想创建一个“自定义事件”,你可以这样做: private EventHandler _MyEvent;Public Event EventHandler MyEvent { add{ _MyEvent += value; } remove{ _MyEvent -= Value; }}protected void RaiseMyEvent(){ if(_MyEvent != nul) _MyEvent(this,E
在C#中如果我想创建一个“自定义事件”,你可以这样做:
private EventHandler _MyEvent;
Public Event EventHandler MyEvent 
{
   add{ _MyEvent += value; }
   remove{ _MyEvent -= Value; }
}
protected void RaiseMyEvent()
{
   if(_MyEvent != nul)
      _MyEvent(this,EventArgs.Empty);
}

在VB中,这不是那么简单,我也无法在网上找到任何帮助.
这不起作用:

private _MyEvent as EventHandler
Public Custom Event MyEvent as EventHandler
   AddHandler(ByVal value as EventHandler)
      _MyEvent += value 'does not work
      addhandler _MyEvent,value 'does not work
      [Delegate].Combine(_MyEvent,value) '_MyEvent still nothing
   End AddHandler
   RemoveHandler(ByVal value as EventHandler)
      'Same kind of stuff here
   End RemoveHandler
   RaiseEvent(sender as Object,e as EventArgs)
      if(_MyEvent IsNot Nothing) Then '_MyEvent is always nothing
         _MyEvent.Invoke(sender,e)
      End If
   End RaiseEvent
End Event

请帮忙.

委托是不可变的,因此方法“[Delegate] .Combine”返回新委托,但不修改参数.所以你需要:
_MyEvent = [Delegate].Combine(_MyEvent,value)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读