0

このサンプル コードを米国労働省の API ドキュメントから C# から VB に変換しようとしています (動作させることができれば非常にクールです。ここで確認してください)。私はMVCの例を作っていません。オンライン コンバーターを使用すると、エラーが発生します。

-- line 1 col 11: invalid TypeDecl 

これは C# コードです。

protected void Page_Load(object sender, EventArgs e)
    {
        AgencyEntities entity = new AgencyEntities(new Uri(“http://api.dol.gov/V1/DOLAgency”));
        entity.SendingRequest += new EventHandler<SendingRequestEventArgs>(DOLDataUtil.service_SendingRequest);
        AgenciesView.DataSource = entity.Agencies;
        AgenciesView.DataBind();
    }

これをVBで配線するにはどうすればよいですか?VB Page_Load を使用して行ごとに変更すると、次のようになります。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Dim entity As New AgencyEntities(New Uri("http://api.dol.gov/V1/DOLAgency"))

    entity.SendingRequest += New EventHandler(Of SendingRequestEventArgs)(DOLDataUtil.service_SendingRequest)
    AgenciesView.DataSource = entity.Agencies
    AgenciesView.DataBind()

End Sub

しかし、ライン

entity.SendingRequest += New EventHandler(Of SendingRequestEventArgs)(DOLDataUtil.service_SendingRequest)

いくつかのエラーで失敗します:

  • エラー 1 'Public Event SendingRequest(sender As Object, e As System.Data.Services.Client.SendingRequestEventArgs)' はイベントであり、直接呼び出すことはできません。「RaiseEvent」ステートメントを使用してイベントを発生させます。
  • エラー 2 デリゲート 'System.EventHandler(Of System.Data.Services.Client.SendingRequestEventArgs)' には、そのコンストラクターへの唯一の引数として 'AddressOf' 式またはラムダ式が必要です。

ここで何が欠けていますか?

4

1 に答える 1

2

問題のある行を次のように置き換えます。

AddHandler entity.SendingRequest, AddressOf DOLDataUtil.service_SendingRequest

それが役立つかどうかを確認してください...VBは、イベントハンドラーを追加するための「+」構文をサポートしていません。

于 2012-08-30T18:24:26.153 に答える