2

我有以下事件代码:

public delegate void SomeEventHandler(SomeEventArgs eventArgs);
event SomeEventHandler someEvent;

我的场景涉及事件使用,因此对于每个 SomeType1,有任意数量的 SomeType2,以及与之关联的事件。

例子,

public event SomeEventHandler EventA1EventB1
public event SomeEventHandler EventA1EventB2
public event SomeEventHandler EventA1EventB3
...
public event SomeEventHandler EventA1EventBn

其次是,

public event SomeEventHandler EventA2EventB1
...

鉴于上述组合的任意数量(以及相当混乱的代码),我选择了:

Dictionary<SomeType1, Dictionary<SomeType2, SomeEventHandler>>

当然,问题是您不能将上述事件声明添加到字典中。为此,我刚刚使用,

delegate { }

我建立上述字典如下:

var someType2Dictionary = Dictionary<SomeType2, delegate { }>();

someType1Dictionary.Add(someType1, someType2Dictionary);

后来,我这样抬头,

someType1Dictionary[someLookUpKey1][someLookUpKey2] += someEventOfTypeSomeEventHandler

首先,有没有更好的方法来处理上述情况?

其次,在运行时,相同的事件/委托(对于任何查找)总是会触发,或者我在第二个字典中得到返回值的空值。

4

0 回答 0