Отладка и тестирование приложений в среде Visual Studio 2005. Евсеева О.Н - 16 стр.

UptoLike

Составители: 

16
Помимо свойства Listeners и методов печати, классы Debug и Trace имеют
и другие важные методы и свойства:
Assert и Fail, проверяющие корректность хода вычисленийо них мы по-
говорим особо;
Flushметод, отправляющий содержание буфера слушателю (в файл, на
консоль и так далее). Следует помнить, что данные буферизуются, поэтому
применение метода Flush зачастую необходимо, иначе метод может завершить-
ся, а данные останутся в буфере;
AutoFlushбулево свойство, указывающее, следует ли после каждой опе-
рации записи, данные из буфера направлять в соответствующий канал. По
умолчанию свойство выключено, и происходит только буферизация данных;
Closeметод, опустошающий буфера и закрывающий всех слушателей,
после чего им нельзя направлять сообщения.
У классов есть и другие свойства и методы, позволяющие, например, за-
ниматься структурированием текста сообщений.
Рассмотрим пример работы, в котором отладочная информация направ-
ляется в разные каналыокно вывода, консоль, файл:
public void Optima()
{
double x, y = 1;
x = y – 2*Math.Sin(y);
FileStream f = new FileStream("Debuginfo.txt",
FileMode.Create, FileAccess.Write);
TextWriterTraceListener writer1 = new TextWriterTraceListener(f);
TextWriterTraceListener writer2 =
new TextWriterTraceListener(System.Console.Out);
Trace.Listeners.Add(writer1);
Debug.Listeners.Add(writer2);
Debug.WriteLine("Число слушателей:" + Debug.Listeners.Count);
Debug.WriteLine("автоматический вывод из буфера:" + Trace.AutoFlush);
Trace.WriteLineIf(x < 0, "Trace: " + "x= " + x.ToString() + " y = " + y);
Debug.WriteLine("Debug: " + "x= " + x.ToString() + " y = " + y);
Trace.Flush();
f.Close();
}
В коллекцию слушателей вывода к слушателю по умолчанию добавляют-
ся еще два слушателя класса TextWriterTraceListener. Отметим, что хотя они до-
бавляются методами разных классов Debug и Trace, попадают они в одну кол-
лекцию. Как и обещано, один из этих слушателей направляет вывод в файл,
другой на консоль. На рис. 2 на фоне окна кода показаны три канала вывода
окно Output, консоль, файл, содержащие одну и ту же информацию.