繁体   English   中英

C#无法从void转换为bool - CS1503

[英]C# Cannot convert from void to bool - CS1503

我正在写一个小程序作为课程的一部分作为秒表。 我遇到的问题是,当我尝试编译时,我的Program.cs类中的Duration()方法Cannot convert from void to bool 该方法应返回TimeSpan

我无法看到它被设置为void 可能是C#运行时中较低级别的东西? 不确定。

Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Stopwatch
{
    class Program
    {
        static void Main(string[] args)
        {
            var stopwatch = new StopWatchController();
            stopwatch.Start();
            stopwatch.Start(); // Second Start() method should throw an exception
            stopwatch.Stop();
            Console.WriteLine(stopwatch.Duration()); // Error appears here
        }
    }
}

StopwatchController.cs

using System;
using System.Runtime.CompilerServices;

namespace Stopwatch
{
    public class StopWatchController
    {
        private DateTime _startTime;
        private DateTime _finishTime;
        private TimeSpan _duration;
        private bool _isWatchRunning;

        public void Start()
        {
            if (!_isWatchRunning)
            {
                _isWatchRunning = !_isWatchRunning;
                _startTime = DateTime.Now;
            }
            else
            {
                throw new Exception("InvalidArgumentException");
            }
        }

        public void Stop()
        {
            _isWatchRunning = false;
            _finishTime = DateTime.Now;
        }

        public void Duration() // I'm an idiot
        {
            _duration = _finishTime - _startTime;
        }
    }
}

Duration应返回要在Console.WriteLine使用的TimeSpan

    public TimeSpan Duration()
    {
        return _duration = _finishTime - _startTime;
    }

    ...

    Console.WriteLine(stopwatch.Duration()); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM