如何从另一个事件调用一个事件
本文关键字:事件 一个 调用 另一个 | 更新日期: 2023-09-27 18:02:59
我在类public class SPURTServer
中有一个类似static private void HandleClientEventCB(SPD.SPD_eventType type, SPD.SPD_event this_event, object passback)
的事件,我需要在另一个事件之外调用此事件这里的"**SPD_eventType**
"是不同项目下的枚举,意思是"namespace Spo.SPDlib
"answers"public class SPD
",这里该枚举的值是spd_clienttevent = 5,
和SPD.SPD_event
是一个类似public struct SPD_event
的结构体,且回传值为空。
我在外部事件中这样调用,如下所示
SPURTServer.HandleClientEventCB(Spo.SPDlib.SPD.SPD_eventType.SPD_clientEvent, Spo.SPDlib.SPD.SPD_event,object passback);
但它抛出错误,如"无效的表达式术语'对象'",我不确定其他两个参数是什么。有人能指引我到这里吗?
在您的呼叫中,您需要删除单词Object。
:
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);
假设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);