我正在开发一个接受ParamArrays的函数。但它应该至少有一个元素,最多5个元素。我尝试定义数组边界但出现错误Array bounds cannot appear in type specifiers
。
那我怎么能这样做呢?
答案 0 :(得分:1)
那我怎么能这样做呢?
你做不到。至少不是静态的。你唯一能做的就是检查函数内部并在遇到错误数量的参数时抛出异常(例如ArgumentException
)。
然而,就API设计而言,这让我觉得很奇怪。我不认为ParamArray
是您案例中的最佳解决方案,正是因为您似乎有ParamArray
未能很好反映的限制。
答案 1 :(得分:0)
我不知道你的问题的背景,我建议尽你所能使功能签名尊重你所要求的合同。例如:
Public Sub Grover (cheese1 as Cheese, Optional cheese2 as Cheese = Nothing, Optional cheese3 as Cheese = Nothing, Optional cheese4 as Cheese = Nothing, Optional cheese5 as Cheese = Nothing)
If cheese1 Is Nothing Then
'throw
End If
For Each cheese in {cheese1, cheese2, cheese3, cheese4, cheese5}
If cheese IsNot Nothing Then
cheese.Snozzle()
End If
'or, in VB14 (as of Visual Studio 2015)
cheese?.Snozzle()
Next
End Sub