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

标签 c# .net vb.net events null

在 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/

相关文章:

c# - C#中的简单移动

c# - Elasticsearch 在使用 IndexMany 时推断动态类型的 _id

.net - IOrderedQueryable 和 IQueryable 有什么区别?

c# - 使用 JSON.NET 反序列化值为字段名称的 JSON

mysql - 当我在页面加载时使用数据读取器附加文本框的内容时,更新查询不起作用

vb.net - 标签字体大小改变

从嵌套类到包含类的 C# 成员访问

c# - IEnumerator 方法在后台计算下一个结果以加快响应速度

c# - 您如何看待我的 IDisposable 模式实现?

vb.net - 从 VB.NET 查找 Excel 中的最后一行