如何检查是否会举起活动?

Jef*_*eed 4 vb.net events

如何检查VB.NET中是否会引发事件?我似乎能够在C#中完成它,但在VB中却没有,即使我使用相同的语法.

这是我的VB.NET语法(返回错误)

If [EVENT] IsNot Nothing Then
End If
Run Code Online (Sandbox Code Playgroud)

这是我的C#语法(完美运行)

If([EVENT] != null) //If an event is not null(nothing)
{
}
Run Code Online (Sandbox Code Playgroud)

这是VB代码返回的错误

"[EVENT]是一个事件,不能直接调用.使用'RaiseEvent'语句来引发事件."

Han*_*ant 5

您需要在C#中使用这种语法,以确保不会引发没有订阅者的事件.是必要的,因为这会使您的代码崩溃并出现NullReferenceException.

这在VB.NET中根本不是必需的.你发现,并没有得到支持.与C#不同,它支持事件的第三个访问器(除了添加和删除),它还支持raise访问器.您猜对了,RaiseEvent语句调用了哪一个.它可以处理没有订阅者的事件就好了,不需要测试.