我想创建一个数据类,它将包含一些信息,并提供一个来处理该信息的数据类。event
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 ConcreteEventData : EventData<ConcreteEventData>
{
int arg1;
string arg2;
}
因此,我被迫使用这种不舒服的结构,而不是简单和简短,即使我记住我会使用与我描述的相同的类型。此外,如果有人使用该基类,他可能会写如下内容:ConcreteEventData : EventData<ConcreteEventData>ConcreteEventData : EventData
public class AnotherConcreteEventData : EventData<ConcreteEventData>
{
float arg1;
bool arg2;
}
如您所见,这不是使用该想法的好方法,是否有另一种方法可以更优雅地使用它?
慕仙森
相关分类