2010-12-27 10 views
5

Tôi đang cố gắng để tìm một cách để có Resharper định dạng một câu lệnh switch như thế này (sử dụng tổ hợp phím Ctrl + E, Ctrl + C):Có thể Resharper báo cáo trường hợp định dạng để bắt đầu trên cùng một dòng như trường hợp chính nó?

switch (int_i) { 
    case 1 : Console.WriteLine("You entered one"); 
       break; 
    case 2 : Console.WriteLine("You entered two"); 
       break; 
    case 3 : Console.WriteLine("You entered three"); 
       break; 
    default : Console.WriteLine("Please enter a number between 1 and 5"); 
       break; 
} 

Cá nhân tôi không thích phong cách này ở tất cả, nhưng nó được sử dụng trong một cuốn sách tôi đang nghiên cứu và tôi muốn Resharper giúp tôi định dạng mã của mình theo cùng một cách.

Có hai điều cần lưu ý ở đây:

  1. Các báo cáo phải bắt đầu trên dòng tương tự như trường hợp tuyên bố.
  2. Dấu hai chấm phải được căn chỉnh, do đó, vì default dài hơn case 3, phải có thêm khoảng trống trước dấu hai chấm trên case 1, case 2case 3.

Resharper có thể thực hiện việc này không?

+3

Vì vậy, bạn không thích kiểu và định dạng kiểu như trong sách không thêm bất kỳ giá trị nào cho khả năng học tập của bạn, nhưng bạn muốn dành thời gian tìm cách định dạng theo cách này ? Tôi có thể thấy một số tiền tối thiểu của giá trị trong việc học cách sử dụng ReSharper để làm điều này, nhưng thẳng thắn tôi muốn tập trung nỗ lực của mình vào việc có được các kỹ năng hiệu quả hơn thế này. Ngoài ra, tôi hy vọng rằng cuốn sách bạn đang học không cung cấp cho bạn tên biến 'int_i'; điều đó thật khủng khiếp. Xin lỗi, thật khó để nghe không giống như một giật trong 600 ký tự. – jason

+2

@ Jason hoàn toàn đồng ý, nhưng nếu các mẫu mã phức tạp và cuốn sách tham chiếu "dòng 123" mà không có bất kỳ ngữ cảnh nào khác, nó có thể hữu ích để có các dòng mẫu. –

+2

@ Jason: Tôi đã thất vọng khi thấy một biến có tên 'int_i'. Nó _does_ đến từ cuốn sách tuy nhiên. – comecme

Trả lời

1

Bạn có thể tùy chỉnh định dạng mã trong ReSharper - Tùy chọn - Ngôn ngữ - C# - Kiểu định dạng, nhưng dường như không có gì về bạn đang yêu cầu. Điều gần nhất tôi tìm thấy - niềng răng định dạng trong câu lệnh Switch.

+0

Cảm ơn bạn đã đăng câu trả lời. Tôi đã biết bạn có thể tùy chỉnh định dạng, câu hỏi của tôi là nếu có thể nhận được định dạng mà tôi đã mô tả. – comecme

1

Tôi biết điều này là cũ, nhưng có thể. Nó chỉ là không rõ ràng. Tôi vừa vấp vào nó.

Đi tới tùy chọn sắp xếp lại/chỉnh sửa mã/C#/Kiểu định dạng/Niềng răng bố cục. Chọn 'Chặn theo "trường hợp" nhãn "để xem mẫu có sai không. Bây giờ chọn Khác. Đặt nó thành "Ở cuối dòng (K & R Style)". Không có gì trong mẫu sẽ thay đổi. Chọn lại 'Chặn theo "trường hợp" nhãn "để xem định dạng có chính xác không.

Tôi thích kiểu BSD cũng hoạt động.

+0

Khi tôi thay đổi cài đặt "Khác" từ "Ở dòng kế tiếp (kiểu BSD)" thành "Ở cuối dòng (K & R Style)", tôi thấy thay đổi trong mẫu. Khi tôi chuyển về nhãn "Chặn theo" trường hợp "Tôi không thấy thay đổi. Vì vậy, tôi có Khác: "cuối dòng (K & R)" và Chặn theo nhãn trường hợp: "Tại dòng tiếp theo (BSD)". – comecme

0

Tôi nghĩ rằng bây giờ có một tùy chọn cho điều đó. Tôi có phiên bản 2017.3.2.

Có tùy chọn ReSharper/Chỉnh sửa mã/C#/Định dạng kiểu/ngắt dòng và gói/sắp xếp câu lệnh nhúng và đặt câu lệnh "case" đơn giản trên cùng một dòng thành Always.

+0

Điều đó không phù hợp với ví dụ của tôi. Bởi vì mỗi 'case' có hai dòng (' WriteLine' và 'break'), ReSharper không coi nó là câu lệnh _simple_ case, do đó, nó sẽ vẫn đặt ngắt dòng sau mỗi' case'. Và thậm chí chỉ với một tuyên bố, nó sẽ không sắp xếp các dấu hai chấm. Nó sẽ chỉ đặt một khoảng trống giữa 'trường hợp' và câu lệnh. – comecme

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