ステートメントで、Select...Case
前提条件に基づいてケースをスキップする方法はありますか?
信じられないほど愚かな例を使用して、私が今していること:
Private Sub PrintNumbers(includeEvenNumbers As Boolean, includeOddNumbers As Boolean)
For number As Integer = 0 To 9
Select Case number
Case 0, 2, 4, 6, 8
If includeEvenNumbers Then
Console.WriteLine(number)
End If
Case 1, 3, 5, 7, 9
If includeOddNumbers Then
Console.WriteLine(number)
End If
End Select
Next
End Sub
場合によっては、ケースを裏返しに書くことさえあります。
Private Sub PrintNumbers(includeEvenNumbers As Boolean, includeOddNumbers As Boolean)
For number As Integer = 0 To 9
Select Case True
Case includeEvenNumbers
If number Mod 2 = 0 Then
Console.WriteLine(number)
End If
Case includeOddNumbers
If number Mod 2 <> 0 Then
Console.WriteLine(number)
End If
End Select
Next
End Sub
代わりに私が本当にやりたいこと:
Private Sub PrintNumbers(includeEvenNumbers As Boolean, includeOddNumbers As Boolean)
For number As Integer = 0 To 9
Select Case number
Case 0, 2, 4, 6, 8 When includeEvenNumbers
Console.WriteLine(number)
Case 1, 3, 5, 7, 9 When includeOddNumbers
Console.WriteLine(number)
End Select
Next
End Sub
現在ブロックWhen
でのみ使用されているキーワードを使用したことに注意してください。Try...Catch
これはできますか?これを実現するには、誰に相談すればよいですか?
編集(1/2)
重要なのは、このコードが最初に評価することWhen <expression>
です。それがに評価される場合にのみ、の評価にTrue
進みCase <expression>
ます。
これを行う主な理由は、状況が正しい場合 (見方によっては間違っている場合) にテスト条件が例外をスローするケースを書きたいからです。前提条件が true の場合は、これらのケースをスキップしたいと思います。
編集(2/2)
私が求めていることは、現在の VB のイテレーションでは不可能であることは明らかです。そこで、.NET 開発チームに機能要求を送信できる場所を探したところ、ユーザーボイス プラットフォームがあることがわかりました。
簡単に言うと、これを実装したい場合は、このページの投票ボタンをタップしてください: https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/4274712-add-when-keyword-サポートから選択ケースの統計