如何知道事件的参数类型

时间:2013-07-03 20:39:51

标签: c# events

我有一个事件,我将我的处理程序与它关联起来。当我编写处理程序方法时,如何知道函数采用哪些参数?

示例:

    // Add an event handler to be called whenever there is new color frame data
            this.sensor.ColorFrameReady += this.SensorColorFrameReady;
            this.sensor.AllFramesReady += this.AllFramesReady;

    //handler
     private void AllFramesReady(object sender, AllFramesReadyEventArgs allFramesReadyEventArgs)
    {


        throw new NotImplementedException();
    }

我怎么知道我的函数的参数是object sender并且所有帧都准备好了args?

4 个答案:

答案 0 :(得分:6)

您查找该事件的文档。它将指定委托定义该事件的内容。然后,您可以查找该委托的文档,以查看函数的签名必须与委托匹配。

或者你可以依靠Visual Studio告诉你而不是查找它,这是大多数人所做的。 (将鼠标悬停在事件上会告诉您委托必须是什么,或者在键盘中键入SomeEvent +=会提示您创建一个具有正确签名的事件处理程序的新存根。)

请注意,参数的名称是无关紧要的(使用您想要的任何内容),只有类型很重要。

答案 1 :(得分:4)

在Visual Studio中手动执行此操作的方法是键入this.sensor.ColorFrameReady +=,然后按两次Tab键以查看默认实现是什么。对于您想要查看签名的任何其他事件/代理,请执行此操作。

这样做并不要求您拥有事件和委托的源代码(您可能没有)。

在我多年的C#编码中,我从未真正找到过更好的方法。 (我实际上并没有找到解决方案,但没有任何明显的解决方案。)

答案 2 :(得分:1)

在Visual Studio中:右键单击事件名称 - >转到定义。这将带您参加活动。右键单击处理程序类名称 - >转到定义。这将带您进入委托的定义,它为您提供方法签名。

这可能略微取决于您的Visual Studio设置。

答案 3 :(得分:1)

事件具有委托类型。委托类型定义处理程序方法的签名。因此,查找事件委托类型,您将找到所需的签名。