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

本文关键字:事件 一个 调用 另一个 | 更新日期: 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);