The Select Case operator is used to check an expression's value against one or more cases. It serves as an alternative to multiple nested If...ElseIf, making the code cleaner and easier to read.
Features:
Case section can include ranges (Case 1 To 10), individual values (Case 2, 4, 6), or complex expressions (Case Is > 100).Complex Cases:
Dim status As Integer = 7 Select Case status Case 1 To 5 Console.WriteLine("From 1 to 5") Case 6, 7, 8 Console.WriteLine("From 6 to 8") Case Is > 10 Console.WriteLine("Greater than 10") Case Else Console.WriteLine("Other value") End Select
Differences from If...ElseIf:
If...ElseIf allows for more flexible checks with logical operators.Question: “How will Select Case behave when checking a string value if the cases differ in letter case?”
Correct Answer: Comparison in Select Case occurs considering the Option Compare setting. By default, comparison in Visual Basic is case-insensitive (Option Compare Text), but it can be changed (Option Compare Binary). If Option Compare Binary is enabled, "test" and "Test" will be considered different.
Example:
' At the beginning of the file: ' Option Compare Binary Dim txt As String = "Test" Select Case txt Case "test" Console.WriteLine("Will it hit? No") Case "Test" Console.WriteLine("Will it hit? Yes") End Select
Story
In an inventory tracking project, numeric identifiers were compared as strings in Select Case. When data was re-encoded, some cases failed to match due to different encoding and case sensitivity, leading to incorrect categorization.
Story
In the development of online forums, a range Case 1 To 10 was used to check the user's rank, but a mistake was made on Boundary Value — when status=10, the section didn't trigger due to carelessness in design.
Story
In a banking application, there was an attempt to check two variables within one Case (Case a > 5 And b < 3). The code compiled with an error, and switching to If...ElseIf helped identify logic errors in operation routing.