秒表抛出空异常

Stopwatch throws null exception

我目前正在尝试使用 c# WinForms 中的 kinect 传感器创建一个战舰游戏。我已经掌握了所有的基础知识,并且一直在尝试在我的项目中实现一个 class,它将骨架框架数据转换成我可以用来控制鼠标的东西。我一直在关注我在网上找到的一些示例代码,但是 运行 遇到了秒表的大问题。使用我的代码,我正在调用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Coding4Fun.Kinect.Wpf;
using Microsoft.Kinect;
using System.Windows.Forms;
using System.Diagnostics;
using System.Drawing;
using System.Windows;

namespace TCP_Server
{
   class motionClass
   {
      //other objects are declared in here as well.
      private readonly Stopwatch _clickHoldingTimer;

在我的错误输出 window 中,我得到以下信息:

Field 'TCP_Server.motionClass._clickHoldingTimer' is never assigned to, and will always have its default value null

秒表的目的是确定用户进行抓取动作的时间,如果持续一定时间则预执行鼠标单击。

如果我 运行 程序到初始化我的 motionClass 的点,一旦它看到正在跟踪的帧中的骨架并且 运行 进入第一次调用秒表,我抛出 nullValueException。

为什么秒表会抛出这个异常,有什么办法可以解决吗?如果需要,我可以提供更多代码并显示抛出异常的位置。

您的变量显然已声明但从未 "new'd",声明变量只是定义其类型,但变量在实例化之前不是 object。如果您显示的代码是您使用此变量的唯一地方,则删除声明,因为它不是 needed/used.

为了使用您的秒表对象,您需要执行此行(或类似的东西):

_clickHoldingTimer = new StopWatch();

我曾尝试将我的代码更改为

private readonly Stopwatch _clickHoldingTimer = new Stopwatch();

但它仍然向我抛出错误。我刚刚尝试关闭并重新启动 Visual Studio,使用此代码而不是我原来的代码,它自行修复。