2011-02-05 37 views
6

Trong đơn đăng ký của tôi, tôi có rất nhiều Console#WriteLine hoặc Console#Write calls. Điều này rất nhiều, ứng dụng thực sự chậm hơn mức cần thiết.Tắt hoặc xóa tất cả các lệnh gọi # WriteLine Console?

Vì vậy, tôi đang tìm kiếm một cách dễ dàng để xóa hoặc ít nhất là tắt tất cả các cuộc gọi Console # WriteLine và Console#Write.

Cách dễ nhất để đạt được điều đó là gì?

+1

Trong tương lai bạn có thể muốn sử dụng [ '# nếu DEBUG'] (http://msdn.microsoft.com/en-us/library/4y6tbswk.aspx) hoặc sử dụng [ConditionalAttribute] (http://weblogs.asp.net/tgraham/archive/2004/03/12/88682.aspx) và phương pháp in gỡ lỗi của riêng bạn. –

+0

Tôi đã làm điều đó, nhưng khi bắt đầu dự án, tôi đã không làm điều đó. –

+1

Đang gửi #IF DEBUG cho Console.WriteLine trong ứng dụng nghe như một ý tưởng tồi với tôi ... sử dụng công cụ ghi nhật ký nơi bạn có thể điều chỉnh cấp khi chạy –

Trả lời

4

Có thể tìm thấy & Thay thế chức năng trong trình chỉnh sửa mã bất kỳ? Ví dụ tất cả

Console.WriteLine 

và thay thế bằng

//Console.WriteLine 
+0

Tôi nghĩ về điều đó nhưng vấn đề là tôi sẽ có một regex hoặc một cái gì đó như thế. – RoflcoptrException

+0

Và sau đó tôi có rất nhiều khoảng trống trong mã vì tôi sẽ phải thay thế cuộc gọi bằng "" hoặc một cái gì đó tương tự. – RoflcoptrException

+1

Có lẽ những gì tôi đã viết sẽ là đủ? –

3

Nếu họ không cần thiết (đăng nhập) thì bạn nên đã sử dụng System.Diagnostics.Debug.Print() để bắt đầu.

May mắn WriteLine() tương thích với Debug.Print() vì vậy đó là một cách dễ dàng S & R. Và khắc phục một số cách sử dụng có thể.

Thay thế Console.Write() có thể phức tạp hơn một chút.

Để hoàn thành: Các câu lệnh Debug.Print() có thể được bật/tắt với hộp kiểm trong dự án |

1

Sử dụng hộp thoại đơn giản, không regex, Tìm/thay thế và thay thế mỗi Console.WriteLine( theo Debug.WriteLine(.

Sau đó, bạn có thể giữ khả năng theo dõi những gì trước đây đã được xuất trực tiếp lên cửa sổ bảng điều khiển, vẫn tối ưu hóa hiệu suất ở chế độ phát hành.

+0

Debug.WriteLine không xử lý các thông số tương tự. –

+0

@ Henk Holterman: bạn nói đúng. Tôi giữ câu trả lời của tôi (nó có thể hữu ích nếu trong trường hợp này chính xác, các tham số rất cơ bản, giống như một chuỗi duy nhất mỗi lần), nhưng tôi +1 câu trả lời của bạn. –

1

Trong Visual Studio, hãy sử dụng tùy chọn Tools|Macros|Record temporary macro để ghi lại macro thực hiện Tìm "Console.Write" và xóa dòng. Đó là:

Ctrl + F để tìm "Console.Write" rồi nhấn Ctrl + L để xóa dòng.

Lưu macro và sau đó chạy macro đối với mọi tệp trong dự án có các dòng vi phạm.

Mất khoảng 2 phút.

Tôi khuyên bạn nên sao lưu nguồn của mình trước. Chỉ trong trường hợp.

19

Đây là bản sửa lỗi nhanh hơn, ngay cả khi tôi đã triển khai.

... 
static int Main(String[] args) 
{ 
... 
#if !DEBUG 
    Console.SetOut(TextWriter.Null); 
    Console.SetError(TextWriter.Null); 
#endif 
... 
} 

HTH

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