Подтвердить что ты не робот

Console.WriteLine не отображается в окне вывода

Я поставил несколько тегов 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);

    }
}

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

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

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

Ответ 7

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

Ответ 8

Попробуйте снять флажок "Использовать режим управляемой совместимости" в

Tools => Options => Debugging => General

Это сработало для меня.

Ответ 9

Выберите view >> Output, чтобы открыть окно вывода.

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