2014-05-22 14 views
9

Dường như Nếu tôi xếp chồng các Case lại với nhau thì chúng không hoạt động như một. Vì các trường hợp VB.NET không yêu cầu sử dụng Exit Select/Trả lại, có vẻ như tự động đặt mỗi lần một Case mới được phát hiện dưới nó?VB.NET Stacking Select Case Các câu lệnh cùng nhau như trong Switch C#/Java

Dim Test as Integer = 12 

Select Case Test 
    Case 11 
    Case 12 
    Case 13 
    MsgBox.Show("Could be 11 or 12 or 13?") 
End Select 

Nó dường như không làm việc chỉ có 13 công trình ..

Gotta always remember this rule that you can't stack Cases like this from now on
Nó không phải dễ dàng để ghi nhớ nó khi porting applications.`

+0

[Trang web dotnet perls] (http://www.dotnetperls.com/select-vbnet) đã điều khiển tôi trong cùng một lỗi ... – Zac

+0

Haha có ai đó phải báo cáo với trang web rằng họ đã nhận được sai – SSpoke

Trả lời

14

hiểu biết của bạn là đúng. VB sẽ không "rơi qua".

Chỉ định đơn Case và tách riêng từng biểu hiện với một dấu phẩy:

Select Case Test 
    Case 11, 12, 13 
     MsgBox.Show("Could be 11 or 12 or 13?") 
End Select 

Ngoài ra, bạn có thể sử dụng một loạt với từ khóa To để thực hiện điều tương tự:

Select Case Test 
    Case 11 To 13 
     MsgBox.Show("Could be 11 or 12 or 13?") 
End Select 

Để biết thêm thông tin , xem the documentation.

+1

Cảm ơn họ nên làm cho nó phát hiện các mô hình ở trên nếu chúng đều trống rỗng cùng một điều nhưng sau đó một lần nữa bạn sẽ mất khả năng sử dụng nó như là bỏ qua bộ lọc. – SSpoke

+0

Đó là lập luận. Tôi có thể đồng ý vì tôi đã quen với khuôn mẫu, nhưng nó có thể gây nhầm lẫn cho nhiều người VB. Hãy xem xét trường hợp bạn có một tuyên bố đơn lẻ sau vụ việc, trong khi gỡ lỗi, bạn nhận xét. Bởi vì VB không yêu cầu "phá vỡ" nên thật khó để giải thích hành vi mới - tại sao nó lại bắt đầu rơi vào. Nó không phải là hành vi rõ ràng, cũng không phải là nó rõ ràng nhìn vào mã. –

+1

Bây giờ tôi nghĩ về điều này, có lẽ họ không nên thay đổi nó ngay bây giờ vì nó là một phần của cách BASIC hoạt động ngay từ đầu cho đến khi nó có vẻ tốt hơn. nhìn thấy sự so sánh '<' '>' trong các chủ đề liên quan đến các công cụ khá mạnh mẽ. 'Gotta luôn luôn nhớ quy tắc này mà bạn không thể ngăn xếp chúng từ bây giờ, nó không phải dễ dàng để nhớ nó khi chuyển ứng dụng. – SSpoke

Các vấn đề liên quan