将事件添加到字典中

时间:2013-09-29 21:42:16

标签: c# .net events dictionary

我有以下事件代码:

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

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

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

0 个答案:

没有答案