0

所以我有这段代码,但我不明白它为什么会这样。这是代码。

using Microsoft.Kinect;

,

KinectSensor.KinectSensors.StatusChanged += KinectSensors_StatusChanged;

private void KinectSensors_StatusChanged(object sender, StatusChangedEventArgs e)
    { ... }

首先是一些信息(对于那些不知道的人)。“KinectSensore”是一个对象。每当 kinect 更改状态(它是一个事件处理程序)时,都会调用“StatusChanged”。

我不完全理解的是整个第二个代码是如何工作的,以及“e”在被调用时会得到什么。

4

1 回答 1

1

StatusChanged当状态发生变化时由 a 引发KinectSensorCollection,例如从该集合中添加或删除 Kinect。它通常用于初始化新连接的传感器,或者在断开连接时进行清理。您可以在 Toolkit 中提供的许多示例中看​​到它的实际效果。

StatusChangedEventArgs只有两个成员

  • Sensor:获取状态发生变化的传感器。
  • Status:获取传感器的状态,表示是否已连接并准备就绪。

您将使用该StatusChangedEventArgs对象来访问新添加的传感器(您将从Status成员那里知道)以对其进行初始化。另一方面,您将使用同一个对象来清理事件处理程序以及与特定对象Sensor断开连接时关联的其他对象。

更新

+=在这种情况下,操作员正在向事件添加事件处理程序StatusChanged。您可以通过以下链接了解如何+=在代码中添加事件处理程序:http: //msdn.microsoft.com/en-us/library/ms743596.aspx

-=此页面在代码注释中提到。随着+=添加事件处理程序,-=将其带走。

sender并且e是从事件发送到事件处理程序的参数。您可以在MSDN中搜索它们的所有详细信息,以及与 C# 相关的任何其他内容。 sender是发送事件的对象——它将是一个 Kinect 传感器。 e有两个成员,我在上面描述过。

于 2013-09-18T14:32:24.127 回答