EventArgs应该包含EventArgs吗?

时间:2014-12-09 14:43:38

标签: c# events hierarchy eventargs

我正在编写一个粒子系统,并且有一个包含许多粒子的发射器的层次结构。

粒子发生与世界碰撞的事件:

public event EventHandler<HitWrapperArguments> onHitCallback;

我正在让发射器订阅每个粒子,以便它可以在任何粒子碰撞时触发事件:

public event EventHandler<ParticleHitWrapperArguments> onParticleHitCallback;

我的问题是:

我的ParticleHitWrapperArguments是否包含HitWrapperArguments,还是应该解压缩HitWrapperArguments并将碰撞信息直接放入ParticleHitWrapperArguments?

enter image description here

2 个答案:

答案 0 :(得分:1)

就我个人而言,这对我来说并不重要,但我会选择2。

它看起来更干净,我认为它更容易使用。它确实需要额外的编码,这可能会导致额外的错误,但我不会太担心它。

答案 1 :(得分:0)

没有正确答案,但我会说使用选项1。 它的工作量更少,因此更不容易出错,并且它将为您提供类似于创建顺序的结构,这将使调试更容易(想想内部异常)。如果你改变你的结构,你必须对包装args类进行最小的改动,这只是它如何更好地设计的一个例子。

如果你必须在这个阶段对参数进行任何处理,那么当然要执行这些操作并将新结果存储在新的args对象中。