4

多くのことをチェックする If ステートメントがあります (BaySlots() は文字列の配列です)。

If (Not BaySlots.Contains(Not String.Empty)) OrElse
        (Not BayAcId = 0 AndAlso Not BayAcId = acProgramId _
            AndAlso overrideSetting = False) Then

Array.Contains配列が空の文字列のみを保持しているかどうかを知るには、最初の条件の方法で十分だと思いますが、実際には Long に変換しようとしているものに評価されるとInvalidCastException: Conversion from string "" to type Long is not valid推測しています。Not String.Empty

このIfをレトロフィットするために使用できるより良い方法はありますか?そのため、配列内の空の文字列のみのテストをIfの一部として含めることができます。前のループを追加して各インデックスをテストする必要はありません。空の文字列の BaySlots()?

コンテンツがないかどうかをテストするためだけに比較的多くの作業が必要になるため、ループ以外にこれをテストする方法がおそらくあるはずだと思いました。

ありがとう

PSこれを明確にするために、配列の次元がゼロであるかNothingに等しいかどうかをテストするのではなく、含まれる文字列がすべてString.Emptyに等しいことをテストします。

4

1 に答える 1