Ответ 1
Вы можете использовать метод System.Diagnostics.Debug.Write
или System.Runtime.InteropServices
для записи сообщений в окно вывода.
Я пишу простую программу на С# с некоторыми выходами (Console.WriteLine("...");
). Проблема в том, что каждый раз, когда я запускаю ее, я не вижу выход программы в окне вывода.
Тег "output output" уже проверен, и я уже перенаправил все выходы в промежуточное окно, но безрезультатно.
Как включить просмотр выходных данных программы?
Я не думаю, что проблема связана с моим кодом. Я попытался запустить простую программу, которая просто выводит строку и readline "ala hello world", и я все еще не могу видеть какой-либо вывод. Проблема заключается либо в том, что я ищу выход в неправильном месте, либо в Visual Studio.
Метод debug.write
также не работает.
Используя debug.write
, все работает, хотя раньше этого не делалось. Либо что-то избило меня, прежде чем я перезапустил, или мне просто нужно сделать перерыв, в любом случае все хорошо. Спасибо всем за полезные комментарии =)
Вы можете использовать метод System.Diagnostics.Debug.Write
или System.Runtime.InteropServices
для записи сообщений в окно вывода.
Вот несколько вещей, которые нужно проверить:
Для console.Write/WriteLine
ваше приложение должно быть консольным приложением. (щелкните правой кнопкой мыши проект в обозревателе решений, выберите Свойства и посмотрите на " Тип вывода" на вкладке "Приложение" - должно быть " Консольное приложение" (обратите внимание: если вам действительно нужно приложение Windows или библиотека классов, не изменяйте его в Консольное приложение, чтобы получить Console.WriteLine
).
Вы можете использовать System.Diagnostics.Debug.WriteLine
для записи в окно вывода (чтобы показать окно вывода в VS, получить Вид | Выход). Обратите внимание, что эти записи будут возникать только в сборке, где определен условный условный блок DEBUG (по умолчанию это отладочные сборки определяют это, а сборки релиза - нет)
Вы можете использовать System.Diagnostics.Trace.Writeline
, если вы хотите писать настраиваемые "слушатели" в не-отладочных сборках. (по умолчанию это записывается в окно вывода в Visual Studio, как и Debug.Writeline
)
Добавьте Console.Read();
в конец вашей программы. Это заставит приложение закрываться, и вы можете увидеть его выход таким образом.
Это консольное приложение, которое я только что выкопал, который останавливается после обработки, но перед выходом:
class Program
{
static void Main(string[] args)
{
DummyObjectList dol = new DummyObjectList(2);
dol.Add(new DummyObject("test1", (Decimal)25.36));
dol.Add(new DummyObject("test2", (Decimal)0.698));
XmlSerializer dolxs = new XmlSerializer(typeof(DummyObjectList));
dolxs.Serialize(Console.Out, dol);
Console.WriteLine(string.Empty);
Console.WriteLine(string.Empty);
List<DummyObject> dolist = new List<DummyObject>(2);
dolist.Add(new DummyObject("test1", (Decimal)25.36));
dolist.Add(new DummyObject("test2", (Decimal)0.698));
XmlSerializer dolistxs = new XmlSerializer(typeof(List<DummyObject>));
dolistxs.Serialize(Console.Out, dolist);
Console.Read(); // <--- Right here
}
}
В качестве альтернативы вы можете просто добавить точку останова на последней строке.
Нажмите Ctrl + F5, чтобы запустить программу вместо F5.
System.Diagnostics.Debug.WriteLine()
будет работать, но вы должны искать нужное место для выхода. В Visual Studio 2010 в строке меню выберите Debug → Windows → Output. Теперь в нижней части экрана, закрепленного рядом с вашим списком ошибок, должна быть вкладка вывода. Нажмите его и дважды проверьте, показывает ли он результат из потока отладки в раскрывающемся списке.
P.S.: Я думаю, что окно вывода отображается на новой установке, но я не могу вспомнить. Если это не так, или если вы случайно его закрыли, следуйте этим инструкциям.
Чтобы открывать консоль Windows и не использовать другие методы вывода, а не стандартный выходной поток cout, перейдите в Name-of-your-project → Properties → Linker → System.
После этого выберите вкладку SubSytem и отметьте Консоль (/SUBSYSTEM: CONSOLE). Как только вы это сделаете, всякий раз, когда вы хотите скомпилировать, используйте Ctrl + F5 (запуск без отладки), и ваша консоль будет открыта.:)
Я часто сталкивался с этим по какой-то причине, и я не могу понять, почему это решение не упоминалось:
Нажмите "Просмотр" → "Выход" (или просто удерживайте Ctrl и нажмите "W > O" )
Затем отображается консольный вывод, где отображаются ваши окна "Список ошибок", "Локали" и "Смотреть".
Примечание. Я использую Visual Studio 2015.
В Program.cs между:
static int Main(string[] agrs)
{
и остальную часть вашего кода добавьте:
#if DEBUG
int rtn = Main2(args);
Console.WriteLine("return " + rtn);
Console.WriteLine("ENTER to continue.");
Console.Read();
return rtn;
}
static int Main2(string[] args)
{
#endif
Вы можете создать два небольших метода, один из которых можно вызвать в начале программы, а другой - в конце. Вы также можете использовать Console.Read(), чтобы программа не закрывалась после последней строки записи.
Таким образом вы можете определить, когда выполняются ваши функции, а также когда программа существует.
startProgram()
{
Console.WriteLine("-------Program starts--------");
Console.Read();
}
endProgram()
{
Console.WriteLine("-------Program Ends--------");
Console.Read();
}