如何从另一个事件中调用事件

时间:2011-07-19 13:03:02

标签: c# events event-handling

我在课程static private void HandleClientEventCB(SPD.SPD_eventType type, SPD.SPD_event this_event, object passback)中有public class SPURTServer这样的事件,我需要在另一个事件之外调用此事件 这里的“**SPD_eventType**”是不同项目下的枚举,表示“namespace Spo.SPDlib”和“public class SPD”,此枚举的值为SPD_clientEvent = 5,

SPD.SPD_event是类似public struct SPD_event的结构,并且回传值为null。

所以我在外部活动中这样打电话如下所示

SPURTServer.HandleClientEventCB(Spo.SPDlib.SPD.SPD_eventType.SPD_clientEvent, Spo.SPDlib.SPD.SPD_event,object passback);

但它抛出的错误就像“无效的表达式术语'对象'”我不确定其他两个争论是什么。任何人都可以在这里指导我吗?

1 个答案:

答案 0 :(得分:2)

在通话中,您需要删除“对象”一词。

这样:

SPURTServer.HandleClientEventCB(Spo.SPDlib.SPD.SPD_eventType.SPD_clientEvent,
    Spo.SPDlib.SPD.SPD_event,
    passback);

或施展它:

SPURTServer.HandleClientEventCB(Spo.SPDlib.SPD.SPD_eventType.SPD_clientEvent,
    Spo.SPDlib.SPD.SPD_event,
    (object)passback);

假设回传是调用范围内的有效对象。

编辑:根据以下评论:

您正在做的是传递事件的类型,而不是事件本身的实例。

SPD_Event是您数据的定义,但您已经创建了它的实例。

你需要像

这样的东西
var newEvent = new Spo.SPDlib.SPD.SPD_event();
newEvent.WhatEverProperties = whatNeedsToBeSet;

SPURTServer.HandleClientEventCB(Spo.SPDlib.SPD.SPD_eventType.SPD_clientEvent,
    newEvent,
    null);