所以我有这个代码,我无法理解为什么它的工作原理。这是代码。
using Microsoft.Kinect;
,
KinectSensor.KinectSensors.StatusChanged += KinectSensors_StatusChanged;
和
private void KinectSensors_StatusChanged(object sender, StatusChangedEventArgs e)
{ ... }
首先是一些信息(对于那些不知道的人)。 “KinectSensore”是一个对象。只要kinect改变状态(它是一个事件处理程序),就会调用StatusChanged。
我不完全理解的是整个第二个代码是如何工作的以及“e”在调用它时会得到什么。
答案 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
此页面在代码评论中提到了-=
。当+=
添加事件处理程序时,-=
会将其删除。
sender
和e
是从事件发送到事件处理程序的参数。您可以在MSDN中搜索有关它们的所有详细信息以及与C#相关的任何其他内容。 sender
是发送事件的对象 - 它将是一个Kinect传感器。 e
有两个成员,我在上面描述过。