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