【问题标题】:Does VB.NET support virtual events?VB.NET 是否支持虚拟事件?
【发布时间】:2009-04-03 18:10:50
【问题描述】:

继续this question。 VB.NET 是否支持虚拟事件?

【问题讨论】:

    标签: vb.net events compiler-construction


    【解决方案1】:

    VB 是否支持虚拟事件的 CLR 概念

    没有。这是我们已经考虑支持但在给定语言周期中没有达到我们当前标准的东西。

    VB 是否支持自定义事件的层次结构的概念

    是的。您可以使用自定义事件语法来允许层次结构控制的事件。

    MustInherit Class Base
        Public Custom Event Event1 As EventHandler
            AddHandler(ByVal value As EventHandler)
                AddEvent1(value)
            End AddHandler
    
            RemoveHandler(ByVal value As EventHandler)
                RemoveEvent1(value)
            End RemoveHandler
    
            RaiseEvent(ByVal sender As Object, ByVal e As System.EventArgs)
                RaiseEvent1(sender, e)
            End RaiseEvent
    
        End Event
    
        Protected MustOverride Sub AddEvent1(ByVal value As EventHandler)
        Protected MustOverride Sub RemoveEvent1(ByVal value As EventHandler)
        Protected MustOverride Sub RaiseEvent1(ByVal sender As Object, ByVal e As EventArgs)
    
    End Class
    

    【讨论】:

    • 您能否用代码示例扩展您的答案? (我会选择你作为获胜者:)
    • 当您在回答中说“我们”时:这是您参与的讨论还是引用了什么?如果引用的话,可以给个参考吗?
    • @Joel,“我们”是指 VS 语言团队。这最近出现在另一个内部问题的背景下,我与编译器团队就这个问题进行了交谈。
    • 对不起,我今天有点慢。 AddEvent1 应该调用 Event1 的 AddHandler 吗?不就像,呃..,无限循环吗?
    • @prankster,它的作用是允许派生类自定义添加和删除事件的行为。他们可以选择使用普通的旧变量或动态存储机制或其他任何东西。如果我把它抽象化(更新),这个例子会更清楚
    猜你喜欢
    • 1970-01-01
    • 2012-06-30
    • 2013-09-08
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2011-12-24
    • 1970-01-01
    相关资源
    最近更新 更多