1

ASP.NET Web アプリで JdSoft の APNS-Sharp ライブラリを使用しています。このライブラリは C# で記述されており、スレッド化の目的でデリゲート関数とイベントを広範囲に使用します。私のアプリケーションは VB.NET で書かれており、次のサンプル コード (C#) の変換方法について少し混乱しています。

....
//Wireup the events
service.Error += new FeedbackService.OnError(service_Error);
....
}

static void service_Error(object sender, Exception ex)
{
Console.WriteLine(...);
}

FeedbackService クラスの関連メンバーは次のとおりです。

public delegate void OnError(object sender, Exception ex);
public event OnError Error;

基本的に、関数 (service_Error など) を VB.NET のイベント (エラーなど) にアタッチする方法を見つけようとしています。このコンテキストで += 構文が何を意味するのかは不明です。VisualStudio は、何らかの理由で VB.NET コードから直接「エラー」イベントにアクセスできないと言っています。

4

3 に答える 3

3

+=オペレーターは基本的に関数を呼び出しリストにサブスクライブしてFeedbackService.OnErrorErrorます。したがって、Errorイベントが発生すると、OnErrorメソッドが呼び出されます。

上記のコードをVB.NETに変換すると、次のようになります。

// define delelgate/event
Public Delegate Sub OnError(sender As Object, ex As Exception)
Public Event OnError Error

// attach method to event
AddHandler service.Error, service_Error

VB.NETのいくつかの例については、 「方法:イベントの発生と消費」を参照してください。

于 2011-10-03T14:33:32.440 に答える
2
AddHandler service.Error, service_Error
于 2011-10-03T14:30:02.317 に答える
0

VB の実装についてはわかりませんが、デリゲートに関する C# の += 構文は、メソッドのデリゲート リスト (呼び出しリスト) にメソッドを追加します。

于 2011-10-03T14:32:00.017 に答える