1 回答

TA貢獻1827條經驗 獲得超8個贊
好的,解決方案很簡單。而不是為我的“事件”創建一個類,我可以簡單地用作數據類,不需要任何事件。我的目標是將其用于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 關注
- 107 瀏覽
添加回答
舉報