我在课程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);
但它抛出的错误就像“无效的表达式术语'对象'”我不确定其他两个争论是什么。任何人都可以在这里指导我吗?
答案 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);