我正在研究一个接受 ParamArrays 的函数。但它应该至少有一个元素,最多有 5 个元素。我尝试定义数组边界但出现错误Array bounds cannot appear in type specifiers
。
那么我该怎么做呢?
我正在研究一个接受 ParamArrays 的函数。但它应该至少有一个元素,最多有 5 个元素。我尝试定义数组边界但出现错误Array bounds cannot appear in type specifiers
。
那么我该怎么做呢?
那么我该怎么做呢?
你不能。至少不是静态的。您唯一能做的就是检查函数内部并在ArgumentException
遇到错误数量的参数时抛出异常(例如 an )。
然而,就 API 设计而言,这让我觉得很奇怪。我不认为 aParamArray
是您情况下的最佳解决方案,正是因为您似乎有限制 a 没有很好地反映ParamArray
。
不知道您的问题的上下文,我建议尽您所能使函数签名符合您要求的合同。例如:
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