【发布时间】:2012-08-30 18:16:53
【问题描述】:
我正在尝试将美国劳工部 API 文档中的示例代码从 C# 转换为 VB(如果我可以让它工作,那就太棒了。检查一下 here)。我不制作 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 '公共事件 SendingRequest(sender As Object, e As System.Data.Services.Client.SendingRequestEventArgs)' 是一个事件,并且 不能直接调用。使用“RaiseEvent”语句来引发 事件。
- 错误 2 委托 'System.EventHandler(Of System.Data.Services.Client.SendingRequestEventArgs)' 需要一个 'AddressOf' 表达式或 lambda 表达式作为唯一参数 它的构造函数。
我在这里错过了什么?
【问题讨论】:
-
之前确实检查过,但老实说,对我来说它是希腊语。试图绕开它,而 MSDN 上的简单示例从来没有真正解释过我的想法。