Tại sao Console.Writeline, Console.Write không hoạt động trong Visual Studio Express?


169

Tôi chỉ cần mở một ứng dụng giao diện điều khiển và tôi gõ

Console.WriteLine("Test");

Nhưng cửa sổ đầu ra không hiển thị điều này. Tôi đi đến cửa sổ đầu ra với Ctrl + W, O

Nhưng không có gì xuất hiện khi tôi chạy chương trình của mình, tôi là người dở hơi hay điều này không được hỗ trợ trong visual studio 2010 express?


3
Như đã Leifnói nó biến mất trước khi bạn có thể nhìn thấy nó. Sử dụngConsole.ReadKey()
Xaqron

Xem thêm stackoverflow.com/a/1583569/503688 để biết cơ chế chuyển hướng đầu ra của bàn điều khiển sang cửa sổ đầu ra gỡ lỗi.
yoyo

Câu trả lời:


301

Console.WriteLineghi đầu ra của bạn vào cửa sổ giao diện điều khiển được mở bởi ứng dụng của bạn (nghĩ rằng cửa sổ màu đen với văn bản màu trắng xuất hiện khi bạn mở Dấu nhắc lệnh.) System.Diagnostics.Debug.WriteLineThay vào đó hãy thử .


26
Đầu ra gỡ lỗi xuất hiện trong cửa sổ đầu ra (Gỡ lỗi => Windows => Đầu ra). Của tôi không được mở theo mặc định.
Appulus

1
Nếu không có đầu ra trong cửa sổ giao diện điều khiển, hãy kiểm tra các thuộc tính của ứng dụng trong tab Gỡ lỗi Tùy chọn bắt đầu để đảm bảo bạn không có bất kỳ đối số dòng lệnh nào chuyển hướng đầu ra từ bàn điều khiển.
Chad Miller

Và sử dụng một công cụ như technet.microsoft.com/en-us/sysiternals/debugview.aspx DebugView (dbgview) để nhận thông báo gỡ lỗi vì chúng sẽ không xuất hiện trên bảng điều khiển cmd.
Roger Deep

19

Đi đến các thuộc tính trong dự án của riêng bạn trong Solution Explorercửa sổ và chọn loại ứng dụng và tìm kiếm Output Type và thay đổi giá trị của nó thành Console Application. Điều này sẽ làm cho màn hình giao diện điều khiển bên cạnh hình thức của bạn. Nếu bạn đóng màn hình giao diện điều khiển, biểu mẫu của bạn cũng sẽ bị đóng.

Chúc may mắn.


Làm cho ngày của tôi! Tôi có thể lặp qua truy vấn LINQ của mình và ghi vào bảng điều khiển ngay bây giờ, đây là cách nhanh chóng để có được dữ liệu chính xác vào cuộc cạnh tranh.
JustJohn 30/08/2015

15

Có lẽ giao diện điều khiển đang rõ ràng. Thử:

Console.WriteLine("Test");
Console.ReadLine();

Và nó sẽ hy vọng ở đó cho đến khi bạn nhấn enter.


15

Không có câu trả lời thỏa đáng được cung cấp.

System.Diagnostics.Debug.WriteLine() sẽ viết tin nhắn vào cửa sổ đầu ra: gỡ lỗi, nhưng rất nhiều thứ nhảm nhí liên tục bị đổ vào cửa sổ đó bởi mọi quá trình dưới ánh mặt trời, nó giống như tìm một cây kim trong đống cỏ khô để tìm tin nhắn CỦA BẠN.

Console.WriteLine()không ghi vào bất kỳ cửa sổ nào trong Visual Studio. Tôi đoán nó sẽ chỉ ghi vào bảng điều khiển ứng dụng nếu ứng dụng của bạn tạo bàn điều khiển ở vị trí đầu tiên, tức là nếu đó là ứng dụng Console.

Tại sao công cụ thực hiện nhiệm vụ đơn giản là có mã bên máy chủ ứng dụng web của bạn .cs code viết một số thông báo gỡ lỗi vào một cửa sổ tràn ngập crap khiến cho việc tìm thông tin của bạn gần như không thể?


6

Hoặc bạn có thể gỡ lỗi bằng cách CTRL+F5này sẽ mở ConsoleWindow đợi sau khi dòng cuối cùng được thực thi cho đến khi bạn nhấn phím.


8
Chà, đó không thực sự là 'gỡ lỗi', đó chỉ là khởi chạy ứng dụng mà không đính kèm trình gỡ lỗi. : /
damian

5

Rất có thể vì bạn đã sử dụng Bảng điều khiển trong không gian tên. Ví dụ như thế này:

namespace XYZApplication.Console
{
    class Program
    {
        static void Main(string[] args)
       {
            //Some code;             
       }
    }
}

Thay vào đó, hãy thử xóa nó khỏi không gian tên hoặc sử dụng không gian tên đầy đủ

   System.Console.Writeline("abc");

1
Tôi không có bất kỳ Bảng điều khiển nào khác trong ứng dụng của mình, nhưng thêm System.trợ giúp. Cảm ơn.
kolenda

4

Cửa sổ đầu ra không phải là bàn điều khiển. Hãy thử các phương pháp trongSystem.Diagnostics.Debug


4

Trong ứng dụng Winforms, cả hai phương pháp:

System.Diagnostics.Debug.WriteLine("my string")

System.Console.WriteLine("my string")

ghi vào cửa sổ đầu ra.

Trong ứng dụng AspNetCore, chỉ System.Diagnostics.Debug.WriteLine("my string")ghi vào cửa sổ đầu ra.



2

Nhấp chuột phải vào dự án trong giải pháp thám hiểm và nhấp vào "sạch".

Bây giờ chạy F5

Hãy chắc chắn rằng mã như sau:

Console.WriteLine("TEST");
Console.ReadLine();

1

Tôi gặp vấn đề tương tự trong khi chạy Bài kiểm tra đơn vị. Console.WriteLine()đã không viết bất cứ điều gì vào Cửa sổ đầu ra VS.

Sử dụng System.Diagnostics.Debug.WriteLine()giải quyết vấn đề.


1

Nếu bạn sử dụng Ctrl-F5 (bắt đầu mà không gỡ lỗi), nó sẽ để cửa sổ giao diện điều khiển mở với thông báo "Nhấn phím bất kỳ để tiếp tục". Đó là cách dễ nhất để giữ cho cửa sổ giao diện điều khiển đóng lại để bạn có thể thấy đầu ra của giao diện điều khiển.


1

Chuyển đến menu Gỡ lỗi và chọn Tùy chọn và bỏ chọn "Chuyển hướng tất cả văn bản Cửa sổ đầu ra sang Cửa sổ ngay lập tức"


0

Console.Writeline() hiển thị trong đầu ra gỡ lỗi (Gỡ lỗi => Windows => Đầu ra).


7
Không, System.Diagnostics.Debug.WriteLine ghi vào Debug => Windows => Đầu ra, nhưng không phải Console.WriteLine
Vitalii Korsakov

1
Người đặt câu hỏi đang sử dụng ứng dụng Console, trong đó Console.WriteLine () tất nhiên ghi vào Bảng điều khiển, đó là cửa sổ ứng dụng màu đen, trông giống như cửa sổ DOS. Console.WriteLine () chỉ ghi vào Cửa sổ đầu ra gỡ lỗi, khi đó không phải là ứng dụng Console.
Peter Huber

"Console.WriteLine () chỉ ghi vào Cửa sổ đầu ra gỡ lỗi, khi đó không phải là ứng dụng Console." Tại sao?
sydd

0

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ổ giao diện điều khiển để bạn có thể đọc đầu ra của mình.



0

Cách giải quyết tôi tìm thấy:

Nhấn Ctrl + Alt + Ihoặc điều hướng đến "Tab gỡ lỗi" ---> "Windows" ---> "Ngay lập tức".

Trong mã của bạn viết:

Trace.WriteLine("This is one of the workaround");

0

Cửa sổ Output của Visual Studio 2017 có một trình đơn được gọi là Hiện sản lượng từ , trong trường hợp của tôi ASP.NET Lõi Web Server là tùy chọn để chọn theo thứ tự để xem được in ra, tôi tình cờ gặp vấn đề này kể từ khi tôi đã có nó thiết lập để xây dựng nên Tôi đã không nhìn thấy các dòng in ra trong thời gian chạy.


0

Có 2 vấn đề có thể xảy ra là:

  • Thứ nhất, bạn chưa sử dụng mã using Systemnên trước khi viết mã sử dụng "Lớp hệ thống", nhưConsole.WriteLine()
  • Thứ hai, bạn chưa mã hóa những gì xảy ra sau khi Bảng điều khiển hiển thị "Kiểm tra"

Giải pháp có thể sẽ là:

using System;

namespace Test
{
    public static Main()
    {
        //Print to the console
        Console.WriteLine("Test");

        //Allow user to read output
        Console.ReadKey();
    }
}

Nó cũng là chiến lược để mã Console.Write("Press any key to exit...");trên dòng đi trước Console.ReadKey();để làm cho người dùng biết rằng chương trình đang kết thúc, anh ấy / cô ấy phải nhấn bất kỳ phím nào để thoát.

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.