2012-06-07 38 views
20

Tôi đặt rất nhiều Debug.WriteLine trong mã của tôi cho mục đích gỡ lỗi. Khi tôi sẵn sàng xây dựng để phát hành, các Debug.Write có ảnh hưởng đến bản phát hành bản phát hành và chúng xuất sang đâu không?Trường hợp sẽ Debug.WriteLine trong C# đầu ra khi xây dựng phát hành?

+0

Cảm ơn rất nhiều tất cả những người đã cung cấp câu trả lời. Tất cả đều đúng. Nhưng tôi chỉ có thể chọn một câu trả lời. upvoted phần còn lại. cảm ơn – toosensitive

Trả lời

12

Từ MSDN: "Thuộc tính ConditionalAttribute được áp dụng cho các phương pháp gỡ lỗi Trình biên dịch hỗ trợ ConditionalAttribute bỏ qua các cuộc gọi đến các phương pháp này trừ. 'DEBUG' được định nghĩa như một biểu tượng biên soạn có điều kiện Tham khảo tài liệu của một trình biên dịch để xác định xem ConditionalAttribute. được hỗ trợ và cú pháp để xác định một biểu tượng biên dịch có điều kiện. "

Vì vậy, nếu cấu hình phát hành của bạn không bao gồm biểu tượng DEBUG, cuộc gọi Debug.WriteLine sẽ bị bỏ qua trong quá trình biên dịch và sẽ không có đầu ra.

+1

Nếu bạn định báo giá MSDN, tốt nhất bạn nên trích dẫn một URL. – Dan

16

Debug.WriteLine được chú thích với thuộc tính Conditional. (xem MSDN)

Trình biên dịch không tạo mã đó trừ khi cờ DEBUG được cung cấp.

5

Gỡ lỗi.Writeline không được biên dịch thành mã phát hành.

8

Nếu bạn chuyển đổi chúng thành Trace.WriteLine, bạn có thể xác định trình nghe tùy ý trong tệp app/web.config.

+3

+1 vì đây là cách thích hợp hơn để có đầu ra nội dung thông qua cấu hình. Mặc dù, nó yêu cầu cờ 'TRACE' được định nghĩa tại biên dịch * và * tất cả các thông điệp được biên dịch thành mã bất kể kiểu xây dựng. 'Debug.WriteLine' nên được sử dụng cho các thư bạn ** không muốn trong bản dựng Bản phát hành. –

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