如何在字典初始化中声明事件?

尼德雷

我正在创建一个事件字典,我想在该字典的初始化内声明这些事件,而不是在其他位置声明它们并放置到字典的链接。

    static event EventDelegate Event1;
    static event EventDelegate Event2;
    static event EventDelegate Event3;

    public enum EventTypes
    {
        Event1, 
        Event2,
        Event3,
    }

    public static Dictionary<EventTypes, EventDelegate> events = new Dictionary<EventTypes, EventDelegate>
    {
        {EventTypes.Event1, Event1},
        {EventTypes.Event2, Event2},
        {EventTypes.Event3, Event3},
    };

所以我想做这样的事情:

{EventTypes.Event1, new event EventDelegate Event1}

那可能吗?

托马斯·希尔伯特

包装事件如何?

class MyEventWrapper
{
    public event EventDelegate Handlers;

    public void Raise(object sender, EventArgs args)
    {
        Handlers?.Invoke(sender, args);
    }
}

//

Dictionary<EventTypes, MyEventWrapper> eventMap = new Dictionary<EventTypes, MyEventWrapper>
{
    { EventTypes.Event1, new MyEventWrapper() },
    { EventTypes.Event2, new MyEventWrapper() },
};

//

eventMap[EventTypes.Event1].Handlers += (s, a) => { };
eventMap[EventTypes.Event2].Handlers += (s, a) => { };

//

eventMap[EventTypes.Event1].Raise(this, new EventArgs());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在结构声明中初始化位域?

如何在Java中声明和初始化数组?

如何在Kotlin中声明和初始化MutableSet?

如何在TypeScript中初始化(声明)数组?

如何在Julia中初始化字典?

如何在python字典中初始化顺序更改

如何在字典TryGetValue中初始化int输出

TinyMCE:如何在事件初始化后绑定事件

如何在header中声明数组并在cpp中初始化

如何在python中的类定义中声明未初始化的变量

如何在ONE GO AFTER声明中初始化字符串数组?C#

如何在 Python 中为未初始化的变量声明类型?

如何在 C++ 中声明一个零初始化的类成员?

如何在go lang中评估声明和初始化的速记?

PLC-ST:如何在声明中初始化结构?

如何在TS节点中的初始化全局变量中声明?

如何在类中声明和初始化静态成员?

默认情况下,如何在Java中声明/初始化数组?

如何在Swift类中声明但不初始化属性

如何在SQLAlchemy中声明和初始化查找表数据?

C++ 如何在类中声明和初始化向量

如何在If Else Statement Android中声明和初始化变量?

如何在以键为对象的Python中初始化字典?

如何在Python中初始化空列表字典?

如何在Python中初始化空列表字典?

如何在Python中使用列表中的键和空值初始化字典?

如何在Python中初始化字典列表并为其建立索引?

如何在Swift中初始化包含对象的空字典

如何在Powershell类中初始化静态字典属性?