以下是本書「在c#的關鍵字中編程」一書中的簡短時鐘程序。我根本不熟悉定時器庫,所以我沒有真正理解這個語法。我想了解的,我不是在這個小程序中的方法Console.Write(str)
。 Main
怎麼知道要打印到控制檯?這是空的Console.WriteLine()
電話,每秒打印一次?當我閱讀這些概念時,理解發生的事情似乎很容易。基於我所問的,關於C#的事情我還不是很瞭解?從方法寫入控制檯.NET 4.0
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);
}
}
沒有WriteLine或Flush,此程序可能無法輸出到控制檯,直到您執行ReadLine由於緩衝。 – user7116
定時器事件處理程序由'tmr.Elapsed'行設置,該行指定每秒調用一次的TimerHandler方法。該方法使用'String.Format'方法將時間寫入'str'變量,然後用'Console.Write(str)'將該字符串寫入控制檯。那有意義嗎? – Jasper
這樣做,但我不明白如何在沒有在Main中調用方法的情況下將任何內容寫入控制檯。 – wootscootinboogie