Vb.net 检查可选参数是否已更改

Vb.net 检查可选参数是否已更改,vb.net,function,optional-parameters,Vb.net,Function,Optional Parameters,我有一个带有1个参数和10个可选参数的函数。 可选参数都是空的。 现在我想检查一个可选参数是否改变了他的值,或者函数是用可选参数启动的。 想想看,参数可以没有值,然后函数也返回。 谢谢你的帮助D10个参数。。这有点过分了。。。而且很难管理。 If Parameter1 Is Nothing then 'Parameter1 changed EndIf 你最好通过一个课程或结构 检查可选参数是否为默认值是确定其是否为预设值的常用方法,如前一个答案所示 如果需要测试某个对象在例程运行时是否发生

我有一个带有1个参数和10个可选参数的函数。 可选参数都是空的。 现在我想检查一个可选参数是否改变了他的值,或者函数是用可选参数启动的。 想想看,参数可以没有值,然后函数也返回。
谢谢你的帮助D

10个参数。。这有点过分了。。。而且很难管理。
If Parameter1 Is Nothing then
  'Parameter1 changed
EndIf
你最好通过一个课程或结构

检查可选参数是否为默认值是确定其是否为预设值的常用方法,如前一个答案所示

如果需要测试某个对象在例程运行时是否发生了更改,但如果该对象最初作为“Nothing”传递,则需要通过引用传递该对象


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

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

请从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.