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 ライブラリの記事で詳しく説明されています。

このような例外をキャッチすることは非常に賢明ではないことに注意してください。例外をキャッチするには、イベントがまったく発生しなかったかのように、プログラムの状態を復元する必要があります。変更を元に戻すと、部分的に実行されたコードが作成されました。これはイベントでは不可能であり、イベントのコントラクトで暗示されているのは、イベントのハンドラーをサブスクライブしたコードについて何も知らないということです。これは、状態を復元することは完全に不可能であることを意味します。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 に答える