Чому Console.Writeline, Console.Write не працює у Visual Studio Express?


169

Я просто відкриваю консольний додаток і набираю текст

Console.WriteLine("Test");

Але вікно виводу цього не показує. Я переходжу до вікна виводу з Ctrl + W, O

Але нічого не з’являється, коли я запускаю свою програму, я горіх чи це не підтримується у візуальній студії 2010 express?


3
Як Leifсказано, він зникає, перш ніж ви зможете його побачити. ВикористанняConsole.ReadKey()
Xaqron

Дивіться також stackoverflow.com/a/1583569/503688 щодо механізму перенаправлення висновку консолі до вікна виводу налагодження.
yoyo

Відповіді:


301

Console.WriteLineзаписує свій висновок у вікно консолі, відкрите вашою програмою (подумайте, чорне вікно з білим текстом, що з’являється, коли ви відкриєте командний рядок.) Спробуйте System.Diagnostics.Debug.WriteLineнатомість.


26
Вихід налагодження з'являється у вікні Вихід (Налагодження => Windows => Вихід). Шаблон за замовчуванням не був відкритий.
Appulus

1
Якщо у вікні консолі немає виводу, також перевірте властивості програми на вкладці «Налагодження» Параметри запуску, щоб переконатися, що у вас немає аргументів командного рядка, які перенаправляють вихід з консолі.
Чад Міллер

І використовувати такий інструмент , як technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (вікно DbgView) , щоб отримати налагоджувальні повідомлення , тому що вони не будуть відображатися на консолі CMD.
Роджер Глибокий

19

Зайдіть у Solution Explorerвікно у власному проекті у вікні та виберіть тип програми та шукайте Output Type та змініть його значення Console Application. Це зробить екран консолі крім вашої форми. Якщо ви закриєте екран консолі, ваша форма теж буде закрита.

Удачі.


Зроби мій день! Я можу переглядати свій запит LINQ і записувати на консоль зараз, який є швидким дешевим способом отримання правильних даних у бійку.
JustJohn

15

Можливо, консоль очищається. Спробуйте:

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

І, сподіваємось, там будете залишатися, поки не натиснете Enter.


15

Задовільних відповідей не надано.

System.Diagnostics.Debug.WriteLine() буде писати повідомлення у вікно налагодження Output: але настільки багато лайно постійно скидається у це вікно під час кожного процесу під сонцем, це як знайти голку в копиці сіна, щоб знайти ВАШІ повідомлення.

Console.WriteLine()не записує до жодного вікна в Visual Studio. Я думаю, що він запише на консоль програми лише в тому випадку, якщо ваша програма створить консоль, в першу чергу, тобто якщо це консольна програма.

Чому інструментарій робить найпростішим завданням встановити код бічної сторони сервера веб-додатків .cs код записати кілька повідомлень про налагодження у вікно, яке завалене дерьмом, що робить майже неможливою пошук вашої інформації?


6

Або ви можете налагодити CTRL+F5це, відкриє ConsoleWindow чекає після виконання останнього рядка, поки ви не натиснете клавішу.


8
Ну, це насправді не "налагодження", це просто запуск програми без приєднання налагоджувача. : /
damian

5

Це більш ніж ймовірно, тому що ви використовували консоль у просторі імен. Наприклад так:

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

Спробуйте видалити його з простору імен або скористайтеся повним простором імен, тобто

   System.Console.Writeline("abc");

1
У мене в програмі не було жодної іншої консолі, але додавання System.допомогло. Дякую.
коленда


4

У додатку Winforms обидва способи:

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

і

System.Console.WriteLine("my string")

записати у вікно виводу.

У додатку AspNetCore System.Diagnostics.Debug.WriteLine("my string")записує лише у вікно виводу.


3

Спробуйте ctrl + F5, він буде утримувати ваш екран, поки ви не натиснете жодну клавішу. З повагою


2

Клацніть правою кнопкою миші на проект у провіднику рішень та натисніть «очистити».

Тепер біжи F5

Переконайтесь, що код наведено нижче:

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

1

Я зіткнувся з подібною проблемою під час запуску модульного тесту. Console.WriteLine()нічого не писав у вихідне вікно VS.

За допомогою System.Diagnostics.Debug.WriteLine()вирішеної проблеми.


1

Якщо ви використовуєте Ctrl-F5 (почніть без налагодження), воно залишить вікно консолі відкритим з повідомленням "Натисніть будь-яку клавішу для продовження". Це найпростіший спосіб уберегти вікно консолі від закриття, щоб ви могли побачити вихід консолі.


1

Перейдіть у меню налагодження та виберіть Опції та зніміть прапорець "Перенаправити весь текст у вихідному вікні на негайне вікно"


0

Console.Writeline() відображається у виході налагодження (Debug => Windows => Output).


7
Ні, System.Diagnostics.Debug.WriteLine пише в Debug => Windows => Вихід, але не Console.WriteLine
Віталій Корсаков

1
Людина, яка задає питання, використовує додаток Console, де, звичайно, Console.WriteLine () пише в консоль, що є чорним кольором вікна програми, схоже на вікно DOS. Console.WriteLine () пише лише у вікно виводу налагодження, коли це не додаток консолі.
Пітер Хубер

"Console.WriteLine () пише лише у вікно виводу налагодження, коли це не додаток консолі." Чому?
sydd

0

Якщо ви розробляєте додаток для командного рядка, ви також можете використовувати Console.ReadLine()в кінці коду, щоб дочекатися натискання клавіші "Enter" перед закриттям вікна консолі, щоб ви могли прочитати вихід.



0

Обхід я знайшов:

Натисніть Ctrl + Alt + Iабо перейдіть до "Вкладка налагодження" ---> "Windows" ---> "Негайне".

У своєму коді напишіть:

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

0

Вихід вікна Visual Studio 2017 мають меню під назвою Show вихід з , в моєму випадку ASP.NET Основний веб - сервер був варіант , щоб вибрати, щоб побачити надруковане, я натрапив на це питання , так як у мене було встановлено , щоб побудувати так Я не бачив надрукованих рядків під час виконання.


0

Можливі дві проблеми:

  • По-перше, ви не використовували те, using Systemщо повинно бути перед написанням коду, який використовує "Клас системи", якConsole.WriteLine()
  • По-друге, ви не кодували те, що станеться після того, як на консолі з'явиться "Тест"

Можливим рішенням буде:

using System;

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

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

Стратегічним є також кодування Console.Write("Press any key to exit...");на лінії, що передує, Console.ReadKey();щоб зрозуміти користувачеві, що програма закінчується, він повинен натиснути будь-яку клавішу для виходу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.