在 VB.net 中显式添加/删除事件 [英] explicit add/remove for Event in VB.net

查看:29
本文介绍了在 VB.net 中显式添加/删除事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在 C# 中,您可以在订阅/取消订阅 event 时定义显式的 add/remove 代码.

In C# you can define explicit add/remove code when an event is subscribed/unsubscribed.

这在 VB.net 中可行吗?

Is this possible in VB.net?

推荐答案

Imports System.Runtime.CompilerServices
...
    Private propchanged As PropertyChangedEventHandler

    Public Custom Event PropertyChanged As PropertyChangedEventHandler

        <MethodImpl(MethodImplOptions.Synchronized)> _
        AddHandler(ByVal value As PropertyChangedEventHandler)
            propchanged = DirectCast([Delegate].Combine(propchanged, value), PropertyChangedEventHandler)
        End AddHandler

        <MethodImpl(MethodImplOptions.Synchronized)> _
        RemoveHandler(ByVal value As PropertyChangedEventHandler)
            propchanged = DirectCast([Delegate].Remove(propchanged, value), PropertyChangedEventHandler)
        End RemoveHandler

        RaiseEvent(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs)
            Dim handler = propchanged
            If handler IsNot Nothing Then handler(sender, e)
        End RaiseEvent
    End Event

这篇关于在 VB.net 中显式添加/删除事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆