<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FDevelopment_Class%2FDebug_Trace</id>
		<title>Csharp/C Sharp/Development Class/Debug Trace - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=Csharp%2FC_Sharp%2FDevelopment_Class%2FDebug_Trace"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Debug_Trace&amp;action=history"/>
		<updated>2026-04-29T23:53:58Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Debug_Trace&amp;diff=1175&amp;oldid=prev</id>
		<title> в 15:31, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Debug_Trace&amp;diff=1175&amp;oldid=prev"/>
				<updated>2010-05-26T15:31:19Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:31, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Debug_Trace&amp;diff=1176&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=Csharp/C_Sharp/Development_Class/Debug_Trace&amp;diff=1176&amp;oldid=prev"/>
				<updated>2010-05-26T11:43:21Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==A simple demonstration of the Debug class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
// DebugTst.cs -- A simple demonstration of the Debug class.&lt;br /&gt;
//&lt;br /&gt;
//                Compile this program with the following command line:&lt;br /&gt;
//                    C:&amp;gt;csc /debug:full /d:DEBUG DebugTst.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
using System.IO;&lt;br /&gt;
namespace nsDebugTest&lt;br /&gt;
{&lt;br /&gt;
    public class DebugTst&lt;br /&gt;
    {&lt;br /&gt;
        static void Main()&lt;br /&gt;
        {&lt;br /&gt;
//            Debug.Listeners.Clear();&lt;br /&gt;
//            Debug.Listeners.Add (new TextWriterTraceListener(Console.Out));&lt;br /&gt;
//            Debug.AutoFlush = true;&lt;br /&gt;
            Debug.WriteLine (&amp;quot;Debug is on&amp;quot;);&lt;br /&gt;
            clsTest test = new clsTest(42);&lt;br /&gt;
            test.ShowValue();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class clsTest&lt;br /&gt;
    {&lt;br /&gt;
        public clsTest (int num)&lt;br /&gt;
        {&lt;br /&gt;
            m_Num = num;&lt;br /&gt;
        }&lt;br /&gt;
        int m_Num;&lt;br /&gt;
        public void ShowValue()&lt;br /&gt;
        {&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                DoSomething ();&lt;br /&gt;
            }&lt;br /&gt;
            catch (Exception e)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine (e.StackTrace);&lt;br /&gt;
            }&lt;br /&gt;
            if (m_Num &amp;lt; 50)&lt;br /&gt;
            {&lt;br /&gt;
                Debug.WriteLine (m_Num + &amp;quot; is less than 50&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        void DoSomething ()&lt;br /&gt;
        {&lt;br /&gt;
            Debug.WriteLine (Environment.StackTrace);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debug and Profile==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class PoorMansProfiler&lt;br /&gt;
  {&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      DateTime Start = DateTime.Now;&lt;br /&gt;
      DateTime End = DateTime.Now;&lt;br /&gt;
      TimeSpan CallTime = End - Start;&lt;br /&gt;
      Console.WriteLine(&amp;quot;Call Time(MS): &amp;quot; + CallTime.Milliseconds.ToString());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debug and Trace Output==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
    public MyClass(int i)&lt;br /&gt;
    {&lt;br /&gt;
        this.i = i;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    [Conditional(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;
    public void VerifyState()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.WriteLineIf(debugOutput, &amp;quot;In VerifyState&amp;quot;);&lt;br /&gt;
        Debug.Assert(i == 0, &amp;quot;Bad State&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    static public bool DebugOutput&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return(debugOutput);&lt;br /&gt;
        }&lt;br /&gt;
        set&lt;br /&gt;
        {&lt;br /&gt;
            debugOutput = value;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    int i = 0;&lt;br /&gt;
    static bool debugOutput = false;&lt;br /&gt;
}&lt;br /&gt;
public class DebugandTraceOutput&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.Listeners.Clear();&lt;br /&gt;
        Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));&lt;br /&gt;
        MyClass c = new MyClass(1);&lt;br /&gt;
        &lt;br /&gt;
        c.VerifyState();&lt;br /&gt;
        MyClass.DebugOutput = true;&lt;br /&gt;
        c.VerifyState();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Debug class==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class Class1Chapter_16___Debugging&lt;br /&gt;
  {&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      int i = 0;&lt;br /&gt;
      Trace.Assert((i == 1), &amp;quot;My Trace Assertion&amp;quot;);&lt;br /&gt;
      Debug.Assert((i == 1), &amp;quot;My Debug Assertion&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Defensive Programming:Conditional Methods==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
    public MyClass(int i)&lt;br /&gt;
    {&lt;br /&gt;
        this.i = i;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    [Conditional(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;
    public void VerifyState()&lt;br /&gt;
    {&lt;br /&gt;
        if (i != 0)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Bad State&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    int i = 0;&lt;br /&gt;
}&lt;br /&gt;
public class DefensiveProgrammingConditionalMethods&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        MyClass c = new MyClass(1);&lt;br /&gt;
        &lt;br /&gt;
        c.VerifyState();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Demonstrate indenting debug messages==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
// Indent.cs -- Demonstrate indenting debug messages.&lt;br /&gt;
//&lt;br /&gt;
//              Compile this program with the following command line:&lt;br /&gt;
//                  C:&amp;gt;csc /debug:full /d:DEBUG Indent.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
namespace nsDebugging&lt;br /&gt;
{&lt;br /&gt;
    public class Indent&lt;br /&gt;
    {&lt;br /&gt;
        static public void Main ()&lt;br /&gt;
        {&lt;br /&gt;
            Debug.Listeners.Clear ();&lt;br /&gt;
            Debug.Listeners.Add (new TextWriterTraceListener(Console.Out));&lt;br /&gt;
            Debug.AutoFlush = true;&lt;br /&gt;
            Debug.IndentSize = 5;&lt;br /&gt;
            Debug.WriteLine (&amp;quot;First level debug message.&amp;quot;);&lt;br /&gt;
            Debug.Fail (&amp;quot;It failed!&amp;quot;);&lt;br /&gt;
            FirstMethod ();&lt;br /&gt;
            Debug.WriteLine (&amp;quot;Return to first level debug message.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        static private void FirstMethod ()&lt;br /&gt;
        {&lt;br /&gt;
 //           Debug.Indent ();&lt;br /&gt;
            ++Debug.IndentLevel;&lt;br /&gt;
            Debug.WriteLine (&amp;quot;Second level debug message&amp;quot;);&lt;br /&gt;
            SecondMethod ();&lt;br /&gt;
            Debug.WriteLine (&amp;quot;Return to second level debug message&amp;quot;);&lt;br /&gt;
//            Debug.Unindent ();&lt;br /&gt;
            --Debug.IndentLevel;&lt;br /&gt;
        }&lt;br /&gt;
        static private void SecondMethod ()&lt;br /&gt;
        {&lt;br /&gt;
            Debug.Indent ();&lt;br /&gt;
            Debug.WriteLine (&amp;quot;Third level debug message.&amp;quot;);&lt;br /&gt;
            Debug.Unindent  ();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==demonstrates debug output==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define DEBUG&lt;br /&gt;
/*&lt;br /&gt;
  Example21_11.cs demonstrates debug output&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
using System.Globalization;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
public class Example21_11a {&lt;br /&gt;
  public static void Main() &lt;br /&gt;
  {&lt;br /&gt;
    TextWriterTraceListener tl = new TextWriterTraceListener(Console.Out);&lt;br /&gt;
    Debug.Listeners.Add(tl);&lt;br /&gt;
    Debug.WriteLine(&amp;quot;Starting Main()&amp;quot;);&lt;br /&gt;
    // create a date and a currency value&lt;br /&gt;
    DateTime dtNow = DateTime.Now;&lt;br /&gt;
    Double curOriginal = 12345.67;&lt;br /&gt;
    // and format the variables for a specific culture&lt;br /&gt;
    CultureInfo ci = new CultureInfo(&amp;quot;en-US&amp;quot;);&lt;br /&gt;
    string sLocalizedDate = dtNow.ToString(&amp;quot;d&amp;quot;, ci);&lt;br /&gt;
    string sLocalizedCur = curOriginal.ToString(&amp;quot;c&amp;quot;, ci);&lt;br /&gt;
    Debug.Assert(sLocalizedDate != null, &amp;quot;Localized date has no content&amp;quot;);&lt;br /&gt;
    // print them out&lt;br /&gt;
    Console.WriteLine(sLocalizedDate);&lt;br /&gt;
    Console.WriteLine(sLocalizedCur);&lt;br /&gt;
    Debug.WriteLine(&amp;quot;Exiting Main()&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Demonstrates routing debug messages to a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
C# Programming Tips &amp;amp; Techniques&lt;br /&gt;
by Charles Wright, Kris Jamsa&lt;br /&gt;
Publisher: Osborne/McGraw-Hill (December 28, 2001)&lt;br /&gt;
ISBN: 0072193794&lt;br /&gt;
*/&lt;br /&gt;
// Listener.cs -- Demonstrates routing debug messages to a file.&lt;br /&gt;
//&lt;br /&gt;
//                Compile this program with the following command line:&lt;br /&gt;
//                    C:&amp;gt;csc /debug:full /d:TRACE Listener.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
using System.IO;&lt;br /&gt;
namespace nsDebugTest&lt;br /&gt;
{&lt;br /&gt;
    public class Listener&lt;br /&gt;
    {&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            EnableDebugging();&lt;br /&gt;
            Trace.AutoFlush = true;&lt;br /&gt;
            Trace.WriteLine (&amp;quot;Debug is on&amp;quot;);&lt;br /&gt;
// Add the fllowing three lines to start another listener:&lt;br /&gt;
            FileStream strm = new FileStream (&amp;quot;Once.txt&amp;quot;, FileMode.Create);&lt;br /&gt;
            TextWriterTraceListener listen = new TextWriterTraceListener (strm);&lt;br /&gt;
            Trace.Listeners.Add (listen);&lt;br /&gt;
            int Num = 1;&lt;br /&gt;
            Trace.Assert (Num == 0, &amp;quot;Num is not equal to 0&amp;quot;);&lt;br /&gt;
// Add the following three lines:&lt;br /&gt;
            Trace.Listeners.Remove (listen);&lt;br /&gt;
            listen.Flush ();&lt;br /&gt;
            strm.Close ();&lt;br /&gt;
            clsTest test = new clsTest(42);&lt;br /&gt;
            test.ShowValue();&lt;br /&gt;
//            Trace.Listeners.Remove (&amp;quot;Console&amp;quot;);&lt;br /&gt;
//            Trace.WriteLine (&amp;quot;\r\nConsole output has been disabled&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        static void EnableDebugging ()&lt;br /&gt;
        {&lt;br /&gt;
            Trace.Listeners.Clear();&lt;br /&gt;
//            Trace.Listeners.Add (new TextWriterTraceListener(Console.Out, &amp;quot;Console&amp;quot;));&lt;br /&gt;
            Trace.Listeners.Add (new TextWriterTraceListener(Console.Out, &amp;quot;Console&amp;quot;));&lt;br /&gt;
            FileStream strm = new FileStream (&amp;quot;./Trace.out&amp;quot;, FileMode.Create);&lt;br /&gt;
            StreamWriter writer = new StreamWriter (strm);&lt;br /&gt;
            Trace.Listeners.Add (new TextWriterTraceListener(writer));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    class clsTest&lt;br /&gt;
    {&lt;br /&gt;
        public clsTest (int num)&lt;br /&gt;
        {&lt;br /&gt;
            m_Num = num;&lt;br /&gt;
        }&lt;br /&gt;
        int m_Num;&lt;br /&gt;
        public void ShowValue()&lt;br /&gt;
        {&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                DoSomething ();&lt;br /&gt;
            }&lt;br /&gt;
            catch (Exception e)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine (e.StackTrace);&lt;br /&gt;
            }&lt;br /&gt;
            if (m_Num &amp;lt; 50)&lt;br /&gt;
            {&lt;br /&gt;
                Debug.WriteLine (m_Num + &amp;quot; is less than 50&amp;quot;);&lt;br /&gt;
                Console.WriteLine (m_Num + &amp;quot; is less than 50&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        void DoSomething ()&lt;br /&gt;
        {&lt;br /&gt;
            Trace.WriteLine (Environment.StackTrace);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==illustrate the use of the debugger==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
Mastering Visual C# .NET&lt;br /&gt;
by Jason Price, Mike Gunderloy&lt;br /&gt;
Publisher: Sybex;&lt;br /&gt;
ISBN: 0782129110&lt;br /&gt;
*/&lt;br /&gt;
/*&lt;br /&gt;
  Example13_10.cs is used to illustrate the use of the debugger;&lt;br /&gt;
  this program attempts to access an invalid array element&lt;br /&gt;
*/&lt;br /&gt;
using System;&lt;br /&gt;
public class Example13_10&lt;br /&gt;
{&lt;br /&gt;
  public static void Main()&lt;br /&gt;
  {&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
      const int ArraySize = 5;&lt;br /&gt;
      // create an array&lt;br /&gt;
      int[] myArray = new int[ArraySize];&lt;br /&gt;
      // set the elements of the array using a for loop&lt;br /&gt;
      for (int count = 0; count &amp;lt;= ArraySize; count++)&lt;br /&gt;
      {&lt;br /&gt;
        myArray[count] = count;&lt;br /&gt;
        Console.WriteLine(&amp;quot;myArray[&amp;quot; + count + &amp;quot;] = &amp;quot; +&lt;br /&gt;
          myArray[count]);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    catch (System.IndexOutOfRangeException e)&lt;br /&gt;
    {&lt;br /&gt;
      Console.WriteLine(&amp;quot;Message = &amp;quot; + e.Message);&lt;br /&gt;
      Console.WriteLine(&amp;quot;StackTrace = &amp;quot; + e.StackTrace);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trace class: listener and writeline==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class Class1Chapter_16___Debugging1&lt;br /&gt;
  {&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      Trace.Listeners.Add(new TextWriterTraceListener(Console.Out));&lt;br /&gt;
      Trace.WriteLine(&amp;quot;My Trace to the console&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trace to debuger: writeline and flush==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class TracingToDebugger&lt;br /&gt;
  {&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      Trace.WriteLine(&amp;quot;My Trace String&amp;quot;);&lt;br /&gt;
      Trace.Flush();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trace to event log==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class TracingToEventLog&lt;br /&gt;
  {&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      //You can change the listener with the following code&lt;br /&gt;
      EventLogTraceListener EventListener = new EventLogTraceListener(&amp;quot;MyApp&amp;quot;);&lt;br /&gt;
      Trace.Listeners.Add(EventListener);&lt;br /&gt;
      &lt;br /&gt;
      Trace.WriteLine(&amp;quot;My Trace String To Console&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
        }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tracing Example==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class TracingExample&lt;br /&gt;
  {&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      TraceSwitch General = new TraceSwitch(&amp;quot;General&amp;quot;, &amp;quot;Application Switch&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(General.TraceError, &amp;quot;General - Error Tracing Enabled&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(General.TraceWarning, &amp;quot;General - Warning Tracing Enabled&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(General.TraceInfo, &amp;quot;General - Info Tracing Enabled&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(General.TraceVerbose, &amp;quot;General - Verbose Tracing Enabled&amp;quot;);&lt;br /&gt;
      TraceSwitch MyComponent = new TraceSwitch(&amp;quot;MyComponent&amp;quot;, &amp;quot;Application Switch&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(MyComponent.TraceError, &amp;quot;MyComponent - Error Tracing Enabled&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(MyComponent.TraceWarning, &amp;quot;MyComponent - Warning Tracing Enabled&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(MyComponent.TraceInfo, &amp;quot;MyComponent - Info Tracing Enabled&amp;quot;);&lt;br /&gt;
      Trace.WriteLineIf(MyComponent.TraceVerbose, &amp;quot;MyComponent - Verbose Tracing Enabled&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
    &amp;lt;system.diagnostics&amp;gt;&lt;br /&gt;
        &amp;lt;switches&amp;gt;&lt;br /&gt;
            &amp;lt;add name=&amp;quot;General&amp;quot; value=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;add name=&amp;quot;MyComponent&amp;quot; value=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/switches&amp;gt;&lt;br /&gt;
    &amp;lt;/system.diagnostics&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
*/&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Tracing To A File==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class TracingToAFile&lt;br /&gt;
  {&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      FileStream Log = new FileStream(&amp;quot;Log.txt&amp;quot;, FileMode.OpenOrCreate);&lt;br /&gt;
      Trace.Listeners.Add(new TextWriterTraceListener(Log));&lt;br /&gt;
      Trace.WriteLine(&amp;quot;My Trace String To Log File&amp;quot;);&lt;br /&gt;
      Trace.Flush();&lt;br /&gt;
      Log.Close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using BooleanSwitch==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * C# Programmers Pocket Consultant&lt;br /&gt;
 * Author: Gregory S. MacBeth&lt;br /&gt;
 * Email: gmacbeth@comporium.net&lt;br /&gt;
 * Create Date: June 27, 2003&lt;br /&gt;
 * Last Modified Date:&lt;br /&gt;
 * Version: 1&lt;br /&gt;
 */&lt;br /&gt;
using System;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
&lt;br /&gt;
namespace Client.Chapter_16___Debugging&lt;br /&gt;
{&lt;br /&gt;
  public class UsingBooleanSwitch&lt;br /&gt;
  {&lt;br /&gt;
    static BooleanSwitch MySwitch = new BooleanSwitch(&amp;quot;MyData&amp;quot;, &amp;quot;MyModule&amp;quot;);&lt;br /&gt;
    [STAThread]&lt;br /&gt;
    static void Main(string[] args)&lt;br /&gt;
    {&lt;br /&gt;
      MySwitch.Enabled = true;&lt;br /&gt;
      if (MySwitch.Enabled)&lt;br /&gt;
        Console.WriteLine(&amp;quot;Error happened!&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using Switches to Control Debug and Trace:BooleanSwitch==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
// compile with: csc /D:DEBUG /r:system.dll boolean.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
    public MyClass(int i)&lt;br /&gt;
    {&lt;br /&gt;
        this.i = i;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    [Conditional(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;
    public void VerifyState()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.WriteLineIf(debugOutput.Enabled, &amp;quot;VerifyState Start&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        if (debugOutput.Enabled)&lt;br /&gt;
        Debug.WriteLine(&amp;quot;VerifyState End&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    BooleanSwitch    debugOutput = &lt;br /&gt;
    new BooleanSwitch(&amp;quot;MyClassDebugOutput&amp;quot;, &amp;quot;Control debug output&amp;quot;);&lt;br /&gt;
    int i = 0;&lt;br /&gt;
}&lt;br /&gt;
public class UsingSwitchestoControlDebugandTraceBooleanSwitch&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.Listeners.Clear();&lt;br /&gt;
        Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));&lt;br /&gt;
        MyClass c = new MyClass(1);&lt;br /&gt;
        &lt;br /&gt;
        c.VerifyState();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using Switches to Control Debug and Trace:TraceSwitch==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
    public MyClass(int i)&lt;br /&gt;
    {&lt;br /&gt;
        this.i = i;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    [Conditional(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;
    public void VerifyState()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.WriteLineIf(debugOutput.TraceInfo, &amp;quot;VerifyState Start&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        Debug.WriteLineIf(debugOutput.TraceVerbose, &lt;br /&gt;
        &amp;quot;Starting field verification&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        if (debugOutput.TraceInfo)&lt;br /&gt;
        Debug.WriteLine(&amp;quot;VerifyState End&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    static TraceSwitch    debugOutput = &lt;br /&gt;
    new TraceSwitch(&amp;quot;MyClassDebugOutput&amp;quot;, &amp;quot;Control debug output&amp;quot;);&lt;br /&gt;
    int i = 0;&lt;br /&gt;
}&lt;br /&gt;
public class TraceTraceSwitch&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        Debug.Listeners.Clear();&lt;br /&gt;
        Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));&lt;br /&gt;
        MyClass c = new MyClass(1);&lt;br /&gt;
        &lt;br /&gt;
        c.VerifyState();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using Switches to Control Debug and Trace:User-Defined Switch==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
// compile with: csc /r:system.dll file_1.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Diagnostics;&lt;br /&gt;
enum SpecialSwitchLevel&lt;br /&gt;
{&lt;br /&gt;
    Mute = 0,&lt;br /&gt;
    Terse = 1,&lt;br /&gt;
    Verbose = 2,&lt;br /&gt;
    Chatty = 3&lt;br /&gt;
}&lt;br /&gt;
class SpecialSwitch: Switch&lt;br /&gt;
{&lt;br /&gt;
    public SpecialSwitch(string displayName, string description) :&lt;br /&gt;
    base(displayName, description)&lt;br /&gt;
    {&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public SpecialSwitchLevel Level&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return((SpecialSwitchLevel) base.SwitchSetting);&lt;br /&gt;
        }&lt;br /&gt;
        set&lt;br /&gt;
        {&lt;br /&gt;
            base.SwitchSetting = (int) value;&lt;br /&gt;
        }    &lt;br /&gt;
    }&lt;br /&gt;
    public bool Mute&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return(base.SwitchSetting == 0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public bool Terse&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return(base.SwitchSetting &amp;gt;= (int) (SpecialSwitchLevel.Terse));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public bool Verbose&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return(base.SwitchSetting &amp;gt;= (int) SpecialSwitchLevel.Verbose);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    public bool Chatty&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return(base.SwitchSetting &amp;gt;=(int) SpecialSwitchLevel.Chatty);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    protected new int SwitchSetting&lt;br /&gt;
    {&lt;br /&gt;
        get&lt;br /&gt;
        {&lt;br /&gt;
            return((int) base.SwitchSetting);&lt;br /&gt;
        }&lt;br /&gt;
        set&lt;br /&gt;
        {&lt;br /&gt;
            if (value &amp;lt; 0)&lt;br /&gt;
            value = 0;&lt;br /&gt;
            if (value &amp;gt; 4)&lt;br /&gt;
            value = 4;&lt;br /&gt;
            &lt;br /&gt;
            base.SwitchSetting = value;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class MyClass&lt;br /&gt;
{&lt;br /&gt;
    public MyClass(int i)&lt;br /&gt;
    {&lt;br /&gt;
        this.i = i;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    [Conditional(&amp;quot;DEBUG&amp;quot;)]&lt;br /&gt;
    public void VerifyState()&lt;br /&gt;
    {&lt;br /&gt;
        Console.WriteLine(&amp;quot;VerifyState&amp;quot;);&lt;br /&gt;
        Debug.WriteLineIf(debugOutput.Terse, &amp;quot;VerifyState Start&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        Debug.WriteLineIf(debugOutput.Chatty, &lt;br /&gt;
        &amp;quot;Starting field verification&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        if (debugOutput.Verbose)&lt;br /&gt;
        Debug.WriteLine(&amp;quot;VerifyState End&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    static SpecialSwitch    debugOutput = &lt;br /&gt;
    new SpecialSwitch(&amp;quot;MyClassDebugOutput&amp;quot;, &amp;quot;application&amp;quot;);&lt;br /&gt;
    int i = 0;&lt;br /&gt;
}&lt;br /&gt;
public class TraceUserDefinedSwitch&lt;br /&gt;
{&lt;br /&gt;
    public static void Main()&lt;br /&gt;
    {&lt;br /&gt;
        //TraceSwitch ts = new TraceSwitch(&amp;quot;MyClassDebugOutput&amp;quot;, &amp;quot;application&amp;quot;);&lt;br /&gt;
        //Console.WriteLine(&amp;quot;TraceSwitch: {0}&amp;quot;, ts.Level);&lt;br /&gt;
        &lt;br /&gt;
        Debug.Listeners.Clear();&lt;br /&gt;
        Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));&lt;br /&gt;
        MyClass c = new MyClass(1);&lt;br /&gt;
        &lt;br /&gt;
        c.VerifyState();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>