Console.WriteLine không hiển thị trong cửa sổ Đầu ra


85

Tôi đã đưa một số Console.WriteLinecuộc gọi vào để kiểm tra, nhưng chúng không xuất hiện trong hộp đầu ra?

public static ArrayList myDeliveries = new ArrayList();

public mainForm(){
    InitializeComponent();
}

private void mainForm_Load(object sender, EventArgs e){

    if (!File.Exists("../../MealDeliveries.txt")){
        MessageBox.Show("File not found!");
        return;
    }

    using (StreamReader sr = new StreamReader("../../MealDeliveries.txt")){
        //first line is delivery name 
        string strDeliveryName = sr.ReadLine();
        Console.WriteLine("Test content");

        while (strDeliveryName != null){

            //other lines 
            Delivery d = new Delivery(
                strDeliveryName, 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine(), 
                sr.ReadLine(),
                sr.ReadLine()
            );

            mainForm.myDeliveries.Add(d);

            //check for further values
            strDeliveryName = sr.ReadLine();
        }
    }

    displayDeliveries();


}


private void displayDeliveries(){

    lstDeliveryDetails.Items.Clear();
    Console.WriteLine("Test content");
    Console.WriteLine(mainForm.myDeliveries.Count);
    foreach (Delivery d in mainForm.myDeliveries){
        lstDeliveryDetails.Items.Add(d.DeliveryName);

    }
}

Có ai giúp được không??


Đã giải quyết vấn đề, viết mã sai cách. Biên dịch không chính xác
sark9012

Câu trả lời:


56

Nếu bạn định sử dụng đầu ra này trong sản xuất, thì hãy sử dụng các thành viên lớp Trace . Điều này làm cho mã di động, bạn có thể kết nối các loại trình nghe khác nhau và xuất ra cửa sổ bảng điều khiển, cửa sổ gỡ lỗi, tệp nhật ký hoặc bất kỳ thứ gì khác mà bạn thích.

Nếu đây chỉ là một số mã gỡ lỗi tạm thời mà bạn đang sử dụng để xác minh rằng mã nhất định đang được thực thi hoặc có các giá trị chính xác, thì hãy sử dụng lớp Gỡ lỗi như Zach đề xuất.

Nếu bạn nhất thiết phải sử dụng bảng điều khiển, thì bạn có thể đính kèm một bảng điều khiển trong Mainphương thức của chương trình .


109

Consolekết quả ra cửa sổ giao diện điều khiển và các ứng dụng Winforms không hiển thị cửa sổ giao diện điều khiển. Bạn sẽ có thể sử dụng System.Diagnostics.Debug.WriteLineđể gửi đầu ra đến cửa sổ đầu ra trong IDE của mình.

Chỉnh sửa: Liên quan đến vấn đề, bạn đã xác minh rằng bạn mainForm_Loadđang thực sự được gọi chưa? Bạn có thể đặt một điểm ngắt ở đầu mainForm_Loadđể xem. Nếu nó không được gọi, tôi nghi ngờ rằng mainForm_Loadnó không được kết nối với Loadsự kiện.

Ngoài ra, sẽ hiệu quả hơn và thường tốt hơn nếu ghi đè On{EventName}thay vì đăng ký {EventName}từ bên trong các lớp dẫn xuất (trong trường hợp của bạn là ghi đè OnLoadthay vì Load).


5
Như thế này? System.Diagnostics.Debug.WriteLine ("một số tetttttttttt23423423423423423tttttttttttttttttttt");
sark9012

2
@Luke - có, nhưng bạn có thể Import System.Diagnosticslàm cho nó đơn giản hơn nhiều. Và tôi thích sử dụng Tracelớp học cho việc này hơn.
Joel Coehoorn

2
Trong thanh điều hướng trên cùng của Visual Studio, hãy chuyển đến View> Output để xem các giá trị từ đó System.Diagnostics.Debug.WriteLine.
Chad Kuehn

13

Nếu bạn muốn Console.WriteLine("example text")đầu ra hiển thị trong cửa sổ Đầu ra gỡ lỗi, hãy tạm thời thay đổi loại Đầu ra của Ứng dụng của bạn từ Ứng dụng bảng điều khiển sang Ứng dụng Windows.

Từ menu, chọn Dự án + Thuộc tính và điều hướng đến Loại đầu ra: thả xuống, thay đổi thành Ứng dụng Windows rồi chạy ứng dụng của bạn

Tất nhiên, bạn nên thay đổi nó trở lại để xây dựng một ứng dụng bảng điều khiển nhằm chạy bên ngoài IDE.

(đã thử nghiệm với Visual Studio 2008 và 2010, hy vọng nó cũng sẽ hoạt động trong các phiên bản sau)


Đây là cách tốt hơn nếu bạn đang muốn sao chép nhanh kết quả ứng dụng của mình.
Mark Kram

2
Tại sao Console.Writeline không hoạt động trong ứng dụng Console? Điều này nghe có vẻ rất trực quan.
sydd

^^ Ừ thì sao? Điều này đã luôn luôn hoạt động. Và bây giờ thì không. Điều này giống như một lỗi trong Visual Studio.
Triynko

3

Sử dụng Console.WriteLine( "Test" );có thể ghi thông báo nhật ký vào Cửa sổ đầu ra (View Menu -> Output) trong Visual Studio cho dự án Windows Forms / WPF.

Tuy nhiên, tôi gặp phải trường hợp nó không hoạt động và chỉ hoạt System.Diagnostics.Debug.WriteLine( "Test" );động. Tôi đã khởi động lại Visual Studio và Console.WriteLine()bắt đầu hoạt động trở lại. Có vẻ là một lỗi Visual Studio.


1

Nếu bạn đang phát triển một ứng dụng dòng lệnh, bạn cũng có thể sử dụng Console.ReadLine()ở cuối mã của mình để chờ nhấn phím 'Enter' trước khi đóng cửa sổ bảng điều khiển để bạn có thể đọc đầu ra của mình. Tuy nhiên, cả hai câu trả lời Trace và Debug được đăng ở trên đều là những lựa chọn tốt hơn.


1

Cố gắng bỏ chọn CheckBox “Sử dụng chế độ tương thích được quản lý” trong

Công cụ => Tùy chọn => Gỡ lỗi => Chung

Nó đã làm việc cho tôi.


Tôi đã gặp lỗi này khi gỡ lỗi một dự án cpp / cli trước đó và dường như gây ra sự cố này cũng như NLog không đăng nhập vào bảng điều khiển.
Blackey

0

Khi sự cố xảy ra trên Mac VS 2017 (Điều mà tôi gặp phải).

  1. Đi tới Dự án >> Tùy chọn "Tên dự án của bạn".
  2. Một cửa sổ tùy chọn sẽ bật lên
  3. Đi tới RUN >> Tùy chọn menu mặc định
  4. Đánh dấu vào tùy chọn "Chạy trên bảng điều khiển bên ngoài" ĐÚNG và nói OK

Chạy mã ứng dụng của bạn ngay bây giờ.


-1

Chủ đề cũ, nhưng trong VS 2015 Console.WriteLine không ghi vào cửa sổ đầu ra nếu "Kích hoạt quá trình lưu trữ Visual Studio" không được kiểm tra hoặc bị vô hiệu hóa trong Thuộc tính dự án -> tab Gỡ lỗi


-3

Chọn xem >> Đầu ra để mở cửa sổ đầu ra.

Trong cửa sổ đầu ra, bạn có thể thấy kết quả


1
Điều này không trả lời câu hỏi. Người dùng đặc biệt cho biết họ đang ở cửa sổ OUTPUT (và do đó đã chọn mục này).
Richard Duerr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.