1 回答
TA贡献1827条经验 获得超7个赞
好的,解决方案很简单。而不是为我的“事件”创建一个类,我可以简单地用作数据类,不需要任何事件。我的目标是将其用于EventBus,而不是做这样的事情EventArgs
public abstract class EventData<T> where T : EventData<T>
{
Action<T> action_;
public void Subscribe(Action<T> _actor) { action_ += _actor; }
public void Unsubscribe(Action<T> _actor) { action_ -= _actor; }
public void Dispatch(T _data) { if (action_ != null) action_(_data); }
}
public class EventBus
{
static Dictionary<string, EventData> _dict;
}
(此外,我不能这样做,我也可能被迫找到这个问题的解决方案)我可以简单地使用
public class EventBus<T> where T : EventArgs
{
static Dictionary<string, Action<T>> list;
public static void SubscribeOnEvent(string _sid, Action<T> _method)
{
// Do Stuff...
}
}
并以如下方式使用它
EventBus<MyData>.Subscibe("myID", (data) => { /*Do stuff...*/ });
现在我可以使用所有数据,来自.感谢@JeroenMostert的想法。EventArgs
- 1 回答
- 0 关注
- 91 浏览
添加回答
举报