【问题标题】:Too many arguments to '''' 的参数太多
【发布时间】:2014-06-26 19:44:28
【问题描述】:

错误:'Public Shared Function Create(branch As Branch) As Branch 的参数过多

我的代码:Branch.vb

...
Inherits Resources

Private Const Path As String = "branches"
...

Public Shared Function Create(branch As Branch) As Branch
    Return Create(branch, Path)   'Path is underlined with error
End Function

还有我的 Resources.vb 文件:

Public Shared Function Create(Of T As {Resources, New})(resource As T, path As String) As T
    Dim request = CreateRequest(path, Method.POST)
    request.AddBody(resource)
    Dim client = CreateClient()
    Dim responce = client.Execute(Of T)(request)

    If responce.StatusCode <> HttpStatusCode.Created Then
        Throw New InvalidOperationException("Create Failed: " & Convert.ToString(responce.StatusCode))
    End If

    Return responce.Data
End Function

现在在我的资源文件中,它在 header 和 branch.vb 中使用了 2 个值,我指定了 2 个值,但仍然有错误?这可能是什么?

【问题讨论】:

  • 不应该是Return Resources.Create(branch, Path)之类的吗?资源文件中的Create 方法与Branch.vb 文件中的Create 方法不同——因为您指定了Create,编译器将在该文件(类)中使用Create,在此案例Branch.vb.
  • 你的 Create 签名看起来只需要一个参数,你传递了两个。

标签: vb.net


【解决方案1】:

我认为这里的问题是您似乎认为Shared 方法是可继承的(它们不是)。因此,当您调用Create 时,假设您在Branch 的上下文中,它假定您正在递归调用Branch.Create,而不是Resources.Create

您需要确保明确选择要拨打的 Create 电话,例如

Public Shared Function Create(branch As Branch) As Branch
    Return Resources.Create(branch, Path) 
End Function

【讨论】:

  • 感谢您的解释并知道我在想什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多