0

好的,我确实有这种功能

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

4

1 回答 1

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 是否为真。

于 2013-08-07T06:21:47.533 回答