0

我正在研究一个接受 ParamArrays 的函数。但它应该至少有一个元素,最多有 5 个元素。我尝试定义数组边界但出现错误Array bounds cannot appear in type specifiers

那么我该怎么做呢?

4

2 回答 2

1

那么我该怎么做呢?

你不能。至少不是静态的。您唯一能做的就是检查函数内部并在ArgumentException遇到错误数量的参数时抛出异常(例如 an )。

然而,就 API 设计而言,这让我觉得很奇怪。我不认为 aParamArray是您情况下的最佳解决方案,正是因为您似乎有限制 a 没有很好地反映ParamArray

于 2015-03-23T10:41:19.147 回答
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
于 2015-03-24T04:12:39.100 回答