知道函数调用VB.NET中是否填充了Optional参数

时间:2013-08-07 05:46:11

标签: vb.net function parameters

好的我确实有这种功能

Public Function myDog(name As String, age As Integer,Optional color As String = Nothing) As String
   'todo codes
    return Nothing
End Sub

现在我的问题是我想知道我的函数内部如何在函数调用期间找到参数color未被填充

myDog("brown",2) 

现在我真的不想依赖参数color保持Nothing然后在函数调用期间未填充它。我真的想知道函数是否被调用并填充,直到参数color

1 个答案:

答案 0 :(得分:2)

如果您需要知道在调用方法期间是否已设置可选参数,则应使用重载。

我会用这3种方法替换你的方法:

Public Function myDog(name As String, age As Integer) As String
    Return myDog(name, age, Nothing, False)
End Function

Public Function myDog(name As String, age As Integer, color As String) As String
    Return myDog(name, age, color, True)
End Function

Private Function myDog(name As String, age As Integer, color As String, filledColor As Boolean) As String
    'todo codes
    Return Nothing
End Function

请注意,前两种方法只能公开访问,而第三种方法是私有方式并且完成所有工作。在第三个内部,您可以检查filledColor是否为真。