Console.WriteLine не отображается в окне вывода - PullRequest
71 голосов
/ 19 апреля 2010

Я поместил несколько Console.WriteLine вызовов для проверки, но они не отображаются в окне вывода?

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);

    }
}

Может кто-нибудь помочь ??

Ответы [ 8 ]

93 голосов
/ 19 апреля 2010

Console выводит в окно консоли, а приложения Winforms не показывают окно консоли. Вы должны иметь возможность использовать System.Diagnostics.Debug.WriteLine для отправки вывода в окно вывода в вашей IDE.

Редактировать: Что касается проблемы, вы убедились, что ваш mainForm_Load действительно вызывается? Вы можете установить точку останова в начале mainForm_Load, чтобы увидеть. Если он не вызывается, я подозреваю, что mainForm_Load не подключен к событию Load.

Кроме того, более эффективно и обычно лучше переопределить On{EventName} вместо подписки на {EventName} из производных классов (в вашем случае переопределение OnLoad вместо Load).

41 голосов
/ 19 апреля 2010

Если вы собираетесь использовать этот вывод в производстве, используйте члены класса Trace . Это делает код переносимым, вы можете подключать различные типы слушателей и выводить их в окно консоли, окно отладки, файл журнала или все, что вам нравится.

Если это всего лишь некоторый временный код отладки, который вы используете для проверки того, что определенный код выполняется или имеет правильные значения, то используйте класс Debug , как Zach . .

Если вам абсолютно необходимо использовать консоль, тогда вы можете подключить консоль в методе программы Main.

12 голосов
/ 23 октября 2014

Если вы хотите, чтобы вывод Console.WriteLine("example text") отображался в окне «Отладочный вывод», временно измените тип вывода вашего приложения с Консольного приложения на Приложение Windows.

В меню выберите «Проект + Свойства» и перейдите к типу вывода: в раскрывающемся списке выберите «Приложение Windows», затем запустите приложение

Конечно, вы должны изменить его обратно для создания консольного приложения, предназначенного для запуска вне среды IDE.

(протестировано с Visual Studio 2008 и 2010, ожидается, что оно будет работать и в последних версиях)

1 голос
/ 19 ноября 2015

Если вы разрабатываете приложение командной строки, вы также можете использовать Console.ReadLine() в конце кода, чтобы дождаться нажатия клавиши «Ввод», прежде чем закрыть окно консоли, чтобы вы могли прочитать свои выходные данные. Тем не менее, оба ответа Trace и Debug, опубликованные выше, являются лучшими вариантами.

0 голосов
/ 14 декабря 2018

Старый поток, но в VS 2015 Console.WriteLine не выполняет запись в окно вывода, если «Включить процесс размещения Visual Studio» не установлен или не включен в свойствах проекта -> вкладка «Отладка»

0 голосов
/ 05 октября 2018

Использование Console.WriteLine( "Test" ); позволяет записывать сообщения журнала в окно вывода (меню «Просмотр» -> «Вывод») в Visual Studio для проекта Windows Forms / WPF.

Однако я столкнулся со случаем, когда он не работал и работал только System.Diagnostics.Debug.WriteLine( "Test" );. Я перезапустил Visual Studio и Console.WriteLine() снова начал работать. Кажется, это ошибка Visual Studio.

0 голосов
/ 21 сентября 2018

Выберите просмотр >> Вывод , чтобы открыть окно вывода.

В окне вывода вы можете увидеть результат

0 голосов
/ 02 сентября 2018

Когда проблема возникает на Mac VS 2017 (с чем я столкнулся).

  1. Перейти к проекту >> Параметры "Ваше имя проекта".
  2. Появится окно параметров
  3. Перейти к RUN >> Параметр меню по умолчанию
  4. Отметьте опцию «Запускать на внешней консоли» ИСТИНА и скажите «ОК»

Запустите код вашего приложения сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...