如何在 C# 中获取两个方法之间的时间跨度?
How to get a time span between two methods in c#?
我正在尝试用 C# 制作一个秒表作为我自己的练习。我的计划是创建两个方法“start()”和“stop()”,然后在我的主程序中从我的秒表 class 中调用它们。我遇到的问题是我不知道如何获得这两者之间的时间跨度。
供您参考,这就是我希望程序的工作方式:如果他们键入 s,计时器将启动,当他们按下 enter 或键入 f 时,时间将显示给他们。
这是我到目前为止写的代码,但是在获取时间跨度时卡住了。
class StopWatch
{
DateTime starting = DateTime.Now;
DateTime finishing = DateTime.Now;
public void start()
{
Console.WriteLine(starting);
}
public void stop()
{
Console.WriteLine(finishing);
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("type s to start and f to stop");
var input = Console.ReadLine();
var stopwatch = new StopWatch();
if (input.ToLower() == "s") { stopwatch.start(); }
var Input2 = Console.ReadLine();
if (Input2.ToLower() == "f") { stopwatch.stop(); }
Console.ReadKey();
}
}
我同意使用库中已有内容的评论,但既然你说你是在练习,这里有一些反馈:
直接回答您如何获得 TimeSpan 的问题:
var duration = finishing - starting;
当前实现不会执行您打算执行的操作,因为您在对象创建时同时设置了 starting
和 finishing
:字段初始值设定项在任何构造函数代码之前执行。所以你应该在start()
方法中设置starting
,在stop()
方法中设置finishing
。然后你也可以在 stop()
方法中计算持续时间,如上所示。
请允许我对命名做一点旁注:“starting”和“finishing”是英文的渐进式,但在这里你想命名特定的值。因此我推荐“startTime”和“endTime”/“stopTime”.
我正在尝试用 C# 制作一个秒表作为我自己的练习。我的计划是创建两个方法“start()”和“stop()”,然后在我的主程序中从我的秒表 class 中调用它们。我遇到的问题是我不知道如何获得这两者之间的时间跨度。
供您参考,这就是我希望程序的工作方式:如果他们键入 s,计时器将启动,当他们按下 enter 或键入 f 时,时间将显示给他们。
这是我到目前为止写的代码,但是在获取时间跨度时卡住了。
class StopWatch
{
DateTime starting = DateTime.Now;
DateTime finishing = DateTime.Now;
public void start()
{
Console.WriteLine(starting);
}
public void stop()
{
Console.WriteLine(finishing);
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("type s to start and f to stop");
var input = Console.ReadLine();
var stopwatch = new StopWatch();
if (input.ToLower() == "s") { stopwatch.start(); }
var Input2 = Console.ReadLine();
if (Input2.ToLower() == "f") { stopwatch.stop(); }
Console.ReadKey();
}
}
我同意使用库中已有内容的评论,但既然你说你是在练习,这里有一些反馈:
直接回答您如何获得 TimeSpan 的问题:
var duration = finishing - starting;
当前实现不会执行您打算执行的操作,因为您在对象创建时同时设置了 starting
和 finishing
:字段初始值设定项在任何构造函数代码之前执行。所以你应该在start()
方法中设置starting
,在stop()
方法中设置finishing
。然后你也可以在 stop()
方法中计算持续时间,如上所示。
请允许我对命名做一点旁注:“starting”和“finishing”是英文的渐进式,但在这里你想命名特定的值。因此我推荐“startTime”和“endTime”/“stopTime”.