C# 尝试在方法之外使用秒表

C# 尝试在方法之外使用秒表,c#,stopwatch,C#,Stopwatch,我正在尝试创建一个秒表表单。我希望能够有一个按钮,我按下,以获得一圈的时间,就像一个正常的秒表。由于我不理解的原因,我不能定义秒表变量并在另一个方法中调用它的构造函数。我如何制作一个秒表变量,以便在其他方法中使用它?如果我不应该使用秒表,我应该怎么做 namespace _Hard0002_StopWatch { public partial class StopWatch : Form { StateEnum state; StopWatch stopW

我正在尝试创建一个秒表表单。我希望能够有一个按钮,我按下,以获得一圈的时间,就像一个正常的秒表。由于我不理解的原因,我不能定义秒表变量并在另一个方法中调用它的构造函数。我如何制作一个
秒表
变量,以便在其他方法中使用它?如果我不应该使用秒表,我应该怎么做

namespace _Hard0002_StopWatch {
    public partial class StopWatch : Form {
        StateEnum state;
        StopWatch stopWatch;

        public StopWatch() {
            InitializeComponent();
            state = StateEnum.Stoped;
        }

        private void StartButton_Click(object sender, EventArgs e) {
            if (state == StateEnum.Stoped) {
                stopWatch = Stopwatch.StartNew();
                state = StateEnum.Started;
                ChangeFormTittle("Started");
                TimeKeeperText.Text = "0.0";
            }
        }

    private void LapButton_Click(object sender, EventArgs e) {
        //save time elapsed to a string array
        stopWatch.getElapsedTime()//I know this isn't how you call it I just worded it to be readable.
    }
这就是我试图在我的
StartButton\u Click()中声明
stopWatch
时遇到的错误

无法将类型“System.Diagnostics.Stopwatch”隐式转换为“\u Hard0002\u Stopwatch.Stopwatch”
C
的秒表是
Stopwatch
。你的课程是秒表。您可以声明您的变量:

StopWatch stopWatch;
然后初始化它:

stopWatch = Stopwatch.StartNew();
使用两个不同的对象。最好将您的表单重命名为类似于
秒表的表单
,以免让您更加困惑。

C
的秒表是
秒表
。你的课程是秒表。您可以声明您的变量:

StopWatch stopWatch;
然后初始化它:

stopWatch = Stopwatch.StartNew();

使用两个不同的对象。最好将您的表单重命名为类似于
StopWatch表单
的名称,以免让您更加困惑。

可能最好不要将表单命名为与
StopWatch
相同的名称。
StopWatch
是一个高精度计时器(通常用于性能基准测试)。你们可以很容易地用一个简单的计时器离开这里。谢谢大家。我也会调查一下计时器。我只想让秒表
正常工作,因为我已经在它上面呆了一段时间。最好不要把它命名为与StopWatch相同的形式。
StopWatch
是一个高精度计时器(通常用于性能基准测试)。你们可以很容易地用一个简单的计时器离开这里。谢谢大家。我也会调查一下计时器。我只想让秒表正常工作,因为我已经在上面停留了一段时间。如果您以正确的方式预先设置对象,这是可能的:
System.Diagnostics.StopWatch
StopWatch=new System.Diagnostics.StopWatch()
,以防您真的需要它。但这可能会非常混乱,导致冗长的陈述。最好不要这样做,但您可能会在其他地方的代码中看到它。例如,存在3个计时器,
System.Windows.Forms.Timer
System.timers.Timer
System.Threading.Timer
。如果您以正确的方式预先设置对象,则有可能:
System.Diagnostics.StopWatch
StopWatch=new System.Diagnostics.StopWatch()
,如果你真的想要的话。但这可能会非常混乱,导致冗长的陈述。最好不要这样做,但您可能会在其他地方的代码中看到它。例如,存在3个计时器,
System.Windows.Forms.Timer
System.timers.Timer
System.Threading.Timer