Writing to the console from a method .NET 4.0
<p>The following is a short clock program from the book "programming in the key of c#".  I'm not familiar with the Timers library at all so some of this syntax I don't really get.  What I want to understand and I don't is the line <code>Console.Write(str)</code> in the method in this little program.  How does <code>Main</code> know what to print to the console?  Is it the empty <code>Console.WriteLine()</code> call that makes the time print out every second?  When I'm reading about these concepts it seems easy after the fact to understand what's going on.  Based on what I've asked, what are the things about C# that I don't really understand yet?</p>

<pre><code>using System;
using System.Timers;    // Requires System.dll

class Clock
{
    static int iStringLength;

    static void Main()
    {
        Console.WriteLine("Press Enter to end program");
        Console.WriteLine();

        Timer tmr = new Timer();
        tmr.Elapsed += new ElapsedEventHandler(TimerHandler);
        tmr.Interval = 1000;
        tmr.Start();

        Console.ReadLine();
        tmr.Stop();
    }
    static void TimerHandler(object obj, ElapsedEventArgs eea)
    {
        Console.Write(new String('\b', iStringLength));

        string str = String.Format("{0} {1} ", 
                                eea.SignalTime.ToLongDateString(), 
                                eea.SignalTime.ToLongTimeString());
        iStringLength = str.Length;

        Console.Write(str);
    }
}
</code></pre>
