【问题标题】:Optional Parameters in VB.NetVB.Net 中的可选参数
【发布时间】:2017-11-18 08:53:40
【问题描述】:

情况是这样的。我的 ASP.Net 应用程序的解决方案有 3 个项目 A、B 和 C。B 包含一个功能(例如:testfunction),供 A 和 C 中的页面使用。现在对于项目 C 的某个要求,我需要对 testfunction 进行更改。为了实现这一点,我添加了一个带有默认值的可选参数,该参数是从 C 传递的。我编译了我的代码并将其移动到服务器,该服务器是来自 B 和 C 的 Dll。在我的测试中,要求工作正常。但是当涉及到调用 testfunction 的项目 A 的应用程序部分被调用时,它出现了一个错误(找不到方法)。我不知道为什么 A 应该中断。我只是从 A 重新编译 DLL 并将其移动到服务器并且错误消失了。

我的问题是,当我没有改变从 A 调用的方式时,为什么我必须编译 A 的 DLL?

【问题讨论】:

标签: asp.net vb.net


【解决方案1】:

这更像是一个猜测,但我认为这是因为 dll "A" 搜索特定方法 "signiture",例如:

B.testfunction(Integer,String)

不是

B.testfunction(Integer,String,[String])

那是不同的方法。

您可以通过保留原来的方法并添加新的重载方法来测试它,如下所示:

Public Overloads Sub testfunction(p1 As Integer, p2 As String)
    testfunction(p1, p2, Nothing)
End Sub
Public Overloads Sub testfunction(p1 As Integer, p2 As String, p3_notOptional As String)
    'Do the thing.
End Sub

如果正确,“A”应该不再需要重新编译。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 2019-07-12
    • 2017-05-26
    相关资源
    最近更新 更多