秒表抛出空异常
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,使用此代码而不是我原来的代码,它自行修复。
我目前正在尝试使用 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,使用此代码而不是我原来的代码,它自行修复。