我寫了一個名爲stopwatch的類和它們的兩個方法(Start()和Stop())。每次我開始和停止時,我都應該得到TimeSpan的時間間隔。但每次運行它時,我都會得到TimeSpan 00:00:00。哪裏錯了? 這裏是我的代碼:C#中使用DateTime和TimeSpan的秒錶
class Stopwatch
{
private DateTime _start;
private DateTime _stop;
private bool _running;
public void Start()
{
if (!_running)
{
_running = true;
_start = DateTime.Now;
}
}
public TimeSpan Stop()
{
if (_running)
{
_stop = DateTime.Now;
_running = false;
}
return (_stop - _start);
}
在main方法運行:
static void Main(string[] args)
{
Console.WriteLine("Stopwatch application");
Console.WriteLine("tap 'y' to start,'n' to stop,'q' to quit.");
while (true)
{
Console.WriteLine("tap 'y' to start,'n' to stop,'q' to quit.");
var input = Console.ReadLine();
var stopWatch = new Stopwatch();
if (input == "y")
{
Console.WriteLine("start");
stopWatch.Start();
}
if (input == "n")
{
Console.WriteLine("stop");
Console.WriteLine(stopWatch.Stop().ToString("G"));
}
if (input == "q") break;
}
}
一個解決方法我試過,通過Cosole.ReadLine()替換所有的輸入,效果很好。但是我的原始代碼出錯了?這意味着_running
將總是是false
當你調用Stop
-