在SDK中调用设计者制作的事件 - c#

时间:2013-09-17 16:56:26

标签: c# events kinect

所以我有这个代码,我无法理解为什么它的工作原理。这是代码。

using Microsoft.Kinect;

KinectSensor.KinectSensors.StatusChanged += KinectSensors_StatusChanged;

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

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

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

1 个答案:

答案 0 :(得分:1)

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

StatusChangedEventArgs只有two members

  • Sensor:获取状态已更改的传感器。
  • Status:获取传感器的状态,指示传感器是否已连接并准备就绪。

您可以使用StatusChangedEventArgs对象来访问新添加的传感器(您可以从Status成员获知)以初始化它。另一方面,当断开连接时,您将使用相同的对象清除事件处理程序和与特定Sensor关联的其他对象。

<强>更新

在这种情况下,+=运算符是向StatusChanged事件添加事件处理程序。您可以在以下链接中阅读有关如何使用+=在代码中添加事件处理程序的信息: http://msdn.microsoft.com/en-us/library/ms743596.aspx

此页面在代码评论中提到了-=。当+=添加事件处理程序时,-=会将其删除。

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