【问题标题】:How to use parameter of a function as default value of its optional paramterer in VB.net如何在 VB.net 中使用函数的参数作为其可选参数的默认值
【发布时间】:2018-08-30 07:51:06
【问题描述】:
如何使用函数参数中的值作为 VB.net 中可选参数的默认值?
这对我不起作用:
Public Function func(ByVal param1 As String, ByVal param2 As String, ByVal Optional param3 As String = param1) As String
Return ""
End Function
【问题讨论】:
标签:
vb.net
parameters
optional-parameters
【解决方案1】:
查看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 注释,以便易于理解用法。