Không, các thành viên của lớp Debug
(với thuộc tính ConditionalAttribute
) không phát ra IL. Có no explicit mention on MSDN, tuy nhiên hai dấu ngoặc kép sau bao hàm hành vi khá tốt, vì vậy để tăng thêm Roy của câu trả lời:
Nếu bạn sử dụng phương thức trong lớp Debug để in thông tin gỡ lỗi và kiểm tra logic của bạn với khẳng định, bạn có thể làm mã của bạn nhiều hơn mạnh mẽ mà không ảnh hưởng đến hiệu suất và kích thước mã của sản phẩm vận chuyển của bạn.
Vì vậy, không có sự khác biệt kích thước ngụ ý không có đầu ra từ những gì, và
Thuộc tính ConditionalAttribute được áp dụng cho các phương pháp Debug. Trình biên dịch hỗ trợ ConditionalAttribute bỏ qua các cuộc gọi đến các phương thức trừ khi "DEBUG" được định nghĩa là biểu tượng biên dịch có điều kiện. Tham khảo tài liệu của trình biên dịch để xác định xem ConditionalAttribute có được hỗ trợ không và cú pháp để xác định biểu tượng biên dịch có điều kiện .
Điều đó có nghĩa rằng, ở cấp trình biên dịch, các cuộc gọi thậm chí sẽ không được xem xét
Nguồn
2012-04-03 15:10:54
Check-out của tôi [cũ blog entry] (http (khi
DEBUG
không được định nghĩa.): //tjoe.wordpress .com/2007/12/03/cotw-conditionalattribute-class /), lưu ý rằng các phương thức 'Debug' được trang trí với' [Conditional ("DEBUG")] '. – CodeNaked