[英]C# Cannot convert from void to bool - CS1503
I am writing a small program to act as a stopwatch as part of a course. 我正在写一个小程序作为课程的一部分作为秒表。 The issue I am having is that when I try to compile I am getting
Cannot convert from void to bool
on my Duration()
method in my Program.cs
class. 我遇到的问题是,当我尝试编译时,我的
Program.cs
类中的Duration()
方法Cannot convert from void to bool
。 The method should return TimeSpan
该方法应返回
TimeSpan
I can't see where it is being set to void
. 我无法看到它被设置为
void
。 Maybe something lower level in the C# runtime? 可能是C#运行时中较低级别的东西? Not sure.
不确定。
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
should return TimeSpan
to be used in Console.WriteLine
: Duration
应返回要在Console.WriteLine
使用的TimeSpan
:
public TimeSpan Duration()
{
return _duration = _finishTime - _startTime;
}
...
Console.WriteLine(stopwatch.Duration());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.