C# 如何在此代码中修复此异常?

C# 如何在此代码中修复此异常?,c#,kinect,C#,Kinect,这个代码有什么问题?我从一本书中照本宣科地复制了代码,不幸的是,它不起作用。我遇到了这个异常,我不知道如何修复它。这一行是例外 KinectSensor sensor = KinectSensor.KinectSensors[0]; 例外情况是:索引超出范围。必须为非负数且小于集合的大小 这是完整的代码: using Microsoft.Kinect; namespace ConsoleApplication4 { internal class Program {

这个代码有什么问题?我从一本书中照本宣科地复制了代码,不幸的是,它不起作用。我遇到了这个异常,我不知道如何修复它。这一行是例外

 KinectSensor sensor = KinectSensor.KinectSensors[0];
例外情况是:索引超出范围。必须为非负数且小于集合的大小

这是完整的代码:

using Microsoft.Kinect;

namespace ConsoleApplication4
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            try
            {
                KinectSensor sensor = KinectSensor.KinectSensors[0];
                sensor.DepthStream.Enable();
                sensor.DepthFrameReady += sensor_DepthFrameReady;

                // make it look like The Matrix 
                Console.ForegroundColor = ConsoleColor.Green;

                // start the data streaming 
                sensor.Start();
                while (Console.ReadKey().Key != ConsoleKey.Spacebar)
                {
                }
            }
            catch (Exception)
            {

                throw;
            }

        }

        private static void sensor_DepthFrameReady(object sender, DepthImageFrameReadyEventArgs e)
        {
            using (var depthFrame = e.OpenDepthImageFrame())
            {
                if (depthFrame == null)
                    return;
                short[] bits = new short[depthFrame.PixelDataLength];
                depthFrame.CopyPixelDataTo(bits);
                foreach (var bit in bits)
                    Console.Write(bit);
            }
        }
    }
}

假设错误来自于线路

 KinectSensor sensor = KinectSensor.KinectSensors[0];
这是可用Kinect传感器的枚举,并且错误状态为位置0为空,我猜您的电脑或代码找不到Kinect传感器

如果你在那里设置一个断点并检查传感器阵列,我打赌你会发现它是空的

建议:

你连接传感器了吗 可以在设备管理器中找到它吗 安装的驱动程序?? 试过一次又一次地关掉它吗 多喝咖啡 用锤子解决。
什么是异常>为什么人们总是用“我的代码引发异常”一行来发布问题,而不在问题中包含细节?了解问题所在的唯一方法是运行提供的代码,这些代码大部分时间都不完整或需要我们不知道的引用。我建议你读一下你的例外。如果你不明白它的意思,谷歌“索引超出范围”