gpt4 book ai didi

c# - 有没有办法在 VB.NET 中知道是否已为事件注册了处理程序?

转载 作者:可可西里 更新时间:2023-11-01 08:32:34 26 4
gpt4 key购买 nike

在 C# 中我可以测试这个...

public event EventHandler Trigger;
protected void OnTrigger(EventArgs e)
{
if (Trigger != null)
Trigger(this, e);
}

有没有办法在 VB.NET 中做到这一点?我的意思是测试 null?

更多信息

忘记说了。我有用 C# 编写的类(class),但我正在用 VB.NET 编写单元测试。

我正在单元测试中尝试这个...

If myObject.Trigger IsNot Nothing Then  
''#do something
End If

这会导致编译时错误,提示...“公共(public)事件触发器是一个事件,不能直接调用。使用 RaiseEvent 语句引发事件。”

赛斯

最佳答案

是的。 null 在 Visual Basic 中称为“Nothing”。

If Trigger IsNot Nothing Then

更新

上面的答案描述了如何在 VB .NET 中检查某些内容是否为 null。不幸的是,VB.NET 编译器对事件进行了特殊处理。

对于这个事件定义:

Public Event Trigger as EventHandler

您将使用此代码来检查订阅

If TriggerEvent Is Nothing

注意 VB.Net 如何添加一个后缀为 Event 的字段来表示委托(delegate)。有一个look here for an explanation .

关于c# - 有没有办法在 VB.NET 中知道是否已为事件注册了处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2952557/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com