如何使用函数参数中的值作为VB.net中可选参数的默认值?
这对我不起作用:
Public Function func(ByVal param1 As String, ByVal param2 As String, ByVal Optional param3 As String = param1) As String
Return ""
End Function
有关documentation参数的原因,请参阅Optional
:
- 过程定义中的每个可选参数都必须指定默认值。
- 可选参数的默认值必须是常量表达式。
- 过程定义中可选参数后面的每个参数也必须是可选的。
因此,你需要这样的东西按你的意图工作:
Function func(ByVal param1 As String, ByVal param2 As String, ByVal Optional param3 As String = "") As String
If(String.IsNullOrEmpty(param3) Then
param3 = param1
End If
Return ""
End Function
但是,您可以使用重载而不是Optional
来解决此问题:
Function func(ByVal param1 As String, ByVal param2 As String) As String
Return func(param1, param2, param1)
End Function
Function func(ByVal param1 As String, ByVal param2 As String, ByVal param3 as String) As String
Return ""
End Function
可能不是最清晰的实现,所以如果你这样做,请确保在方法中添加XML注释,以便易于理解使用。