Приставка.Строку не отображается в окне вывода


Я поставил 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);

    }
}

кто может помочь??

7 60

7 ответов:

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

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

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

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

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

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

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

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

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

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

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

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

  1. перейдите в проект > > параметры "имя вашего проекта".
  2. появится окно опций
  3. перейти к запуску > > опция меню по умолчанию
  4. отметьте опцию" запуск на внешней консоли " TRUE и скажите OK

запустите код приложения прямо сейчас.

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

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

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

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