检查可选参数是否已更改

时间:2017-02-01 14:24:36

标签: vb.net function optional-parameters

我有一个带有1个参数的函数和10个可选参数。 可选参数都没有。 现在我想检查可选参数是否已更改其值,或者是否已使用可选参数启动了Function。 可以想象,参数可以具有Value Nothing,然后Function返回。 你的帮助。 :d

3 个答案:

答案 0 :(得分:2)

10个参数..这有点过分......而且难以管理。 你最好通过一个班级或结构。

检查可选参数是默认值,通常用于确定是否已预设,如上一个答案中那样。

如果你需要在例程运行时测试它是否发生了变化,你需要通过引用传递一个对象,但如果它最初是作为“Nothing”传递的,那么它将不起作用。

如果没有关于您的使用意图的更多信息,最终有点难以回答这个问题。

答案 1 :(得分:0)

If Parameter1 Is Nothing then
  'Parameter1 changed
EndIf

答案 2 :(得分:0)

如果您的其他可选参数不存在,我相信它们的引用类型是字符串。

以下来自MSDN以检查是否存在可选参数 -

  

过程无法在运行时检测是否已省略给定参数或调用代码是否已显式提供默认值。如果需要进行此区分,可以将不太可能的值设置为默认值。以下过程定义可选参数office,并测试其默认值QJZ,以查看它是否在调用中被省略:

Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
  If office = "QJZ" Then
      Debug.WriteLine("office not supplied -- using Headquarters")
      office = "Headquarters"
  End If
  ' Insert code to notify headquarters or specified office.

End Sub

可以找到HERE

链接