如何在c#中获得两种方法之间的时间跨度?

c#

我正在尝试用 C# 制作一个秒表作为自己的练习。我的计划是创建两个方法“start()”和“stop()”,然后从我的 main.js 中的秒表类调用它们。我的问题是我不知道如何获得这两者之间的时间跨度。

供您参考,这就是我希望程序运行的方式:如果他们输入 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;

当前的实现不会做您打算做的事情,因为您在对象创建时设置了startingfinishing:字段初始值设定项在任何构造函数代码之前执行。所以,你应该设置startingstart()方法,并finishingstop()方法。然后您也可以在stop()方法中计算如上所示的持续时间。

请允许我对命名做一点补充说明:“开始”和“结束”是英语中的渐进形式,但在这里您想命名特定的值。因此我推荐“ startTime ”和“ endTime ”/“ stopTime ”。


以上是如何在c#中获得两种方法之间的时间跨度?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>