如何在VB.net中使用函数的参数作为其可选参数的默认值

问题描述 投票:0回答:1

如何使用函数参数中的值作为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个回答
5
投票

有关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注释,以便易于理解使用。

© www.soinside.com 2019 - 2024. All rights reserved.