Tôi đã tự hỏi tại sao C# yêu cầu tôi sử dụng break
trong tuyên bố switch
mặc dù ngữ nghĩa mùa thu theo định nghĩa không được phép. do đó, trình biên dịch có thể tạo ra các break
vào cuối mỗi case
-lock và lưu lại cho tôi những rắc rối.Tại sao tôi cần sử dụng ngắt?
Tuy nhiên, có một kịch bản (mà đã được thảo luận trên trang web này) mà tôi có thể đưa ra đó có thể là lý do cho việc sử dụng rõ ràng của break
:
switch (foo) {
case 0:
case 1:
bar();
break;
default:
break;
}
Ở đây, phương pháp này bar()
được gọi là nếu foo
có giá trị 0 hoặc 1.
Tùy chọn này sẽ phá vỡ theo nghĩa xác thực nhất của từ nếu trình biên dịch tự tạo ra các tuyên bố break
. Đây có phải là lý do tại sao giờ nghỉ là bắt buộc hay có lý do chính đáng nào khác không?
Cá nhân tôi nghĩ đây là một quyết định thiết kế khủng khiếp của nhóm C# và một trong số ít nơi họ thất bại. –
@Chris: Tôi khuyên bạn nên đọc blog của Eric như được liên kết trong câu trả lời được chấp nhận. Nó giải quyết một vài điều mà tôi đoán là những thứ làm bạn khó chịu. –
Và bạn sẽ làm thế nào, Chris? –