1

我对他的文章有疑问。

我将源代码转换为 Vb.net,但这一行有问题:

 var handler = MyEvent

谁能帮我把这条线翻译成VB.net?

4

3 回答 3

3
var handler = MyEvent;
if (handler == null)
{
    Console.WriteLine("No listeners");
    return;
}

可以翻译成

Dim handler = MyEventEvent
If handler Is Nothing
     Console.WriteLine("No listeners")
     Return
End If

在此处输入图像描述

于 2012-09-05T11:10:45.960 回答
0

您需要使用 Custom 关键字声明自定义事件以访问底层委托。这篇MSDN Library 文章对此进行了很好的解释。

需要注意的是,像这样捕获异常是非常不明智的。捕获异常需要您恢复程序状态,就好像事件从未引发过一样。撤消任何更改会导致部分执行的代码。这对于事件来说是不可能的,事件契约隐含的是你对订阅事件处理程序的代码一无所知。这意味着完全不可能恢复状态。catch 块必须出现在事件处理程序中,而不是出现在引发事件的代码中。忽略这个博主试图给你的建议。

于 2012-09-05T11:28:34.280 回答
-1

我认为要么

Dim handler As EventHandler = MyEvent

或者

Dim handler As EventHandler = AddressOf MyEvent
于 2012-09-05T10:58:56.550 回答