2012-07-02 37 views
9

Tôi đang gỡ lỗi một vòng lặp foreach sẽ lặp lại hơn 1000 lần - vì vậy tôi chỉ muốn một điểm ngắt trong vòng lặp để ngắt cho một mục cụ thể.Điều kiện C# breakpoint?

Vậy ...

foreach(Employee employee in employees) 
{ 
//DO SOMETHING 
//BREAK HERE WHEN employee.Id == '2342' 
//DO SOMETHING ELSE 
} 

Tôi có phải viết một tuyên bố If và một số mã giả bên trong nó và phá vỡ nó như vậy? Đó là cách duy nhất?

Trả lời

4

Chỉ thêm các câu trả lời trước đó. Sử dụng điểm ngắt có điều kiện.

enter image description here

Bạn có thể chỉ định các điều kiện như dưới đây
enter image description here

+0

Tôi đã phải thay đổi câu trả lời đúng cho câu trả lời này. Hầu hết các mô tả và phù hợp nhất. –

+2

Với> 1000 lần lặp lại, câu trả lời của leppie tốt hơn. Trong khi bạn phải chỉnh sửa mã để làm điều này, nó nhanh hơn nhiều. http://stackoverflow.com/a/11290503/282143 – Eccentropy

21
if (employee.Id == '2342') Debugger.Break(); 

Hoặc, bạn có thể đặt điểm ngắt có điều kiện trong VS, nhưng theo kinh nghiệm của tôi, điều đó cực kỳ chậm.

+0

Tại sao downvote? – leppie

+0

Cảm ơn, điều này đặc biệt hữu ích. – Azrael

2

Bạn có thể sử dụng điểm ngắt có điều kiện trong Visual Studio.

Nhấp chuột phải vào điểm ngắt và chọn điều kiện và sau đó đặt vào mệnh đề của bạn.

8

Nếu bạn đang sử dụng bất kỳ nội dung nào khác ngoài ấn bản của VS phải, hãy nhấp chuột vào điểm ngắt và nhấp vào Đặt điều kiện.

Cá nhân tôi muốn sử dụng phương pháp này vì tôi cho rằng thực tiễn không tốt để sửa đổi mã của bạn để gỡ lỗi.

Nếu không, bạn bị buộc phải thực hiện theo cách của mình.

3

Sử dụng trình gỡ lỗi VS có điểm ngắt có điều kiện, qua giao diện người dùng.

dễ nhấtnhanh nhất cách imo.

The Ultimate Visual Studio Tips and Tricks Blog

+6

Nhanh nhất? Nó chậm hơn 1000 lần so với điều kiện trong mã. – leppie

+2

đó là * cực kỳ * chủ quan. Tôi, cá nhân, sử dụng chúng mỗi ngày và tìm thấy nhanh hơn nhiều sau đó "dirting" mã của tôi với một cái gì đó tạm thời. Nếu tôi có thể tránh viết mã DEBUG bên trong mã sản xuất của mình, tôi làm điều đó. – Tigran

+0

@leppie Tôi không biết rằng, đáng xem xét nếu bạn đang chạy trên một vài triệu hồ sơ - cảm ơn! – Liath

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