ParamArrays を受け入れる関数に取り組んでいました。ただし、少なくとも 1 つの要素と最大 5 つの要素が必要です。配列の境界を定義しようとしましたが、エラーが発生しましArray bounds cannot appear in type specifiers
た。
では、どうすればこれを行うことができますか?
ParamArrays を受け入れる関数に取り組んでいました。ただし、少なくとも 1 つの要素と最大 5 つの要素が必要です。配列の境界を定義しようとしましたが、エラーが発生しましArray bounds cannot appear in type specifiers
た。
では、どうすればこれを行うことができますか?
では、どうすればこれを行うことができますか?
できません。少なくとも静的ではありません。あなたができる唯一のことは、関数の内部をチェックしArgumentException
、間違った数の引数に遭遇したときに例外 (例えば ) をスローすることです。
ただし、API 設計に関しては、これは奇妙に思えます。ParamArray
aによって十分に反映されていない制限があるように見えるため、 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