在这种情况下,您可以使用c#创建一个事件集合,如列表,哈希集合和字典吗?谢谢。事件词典
Q
事件词典
1
A
回答
5
当然可以的正确实例:
Dictionary<String, Delegate> m_events = new Dictionary<String, Delegate>();
在杰夫·里希特的书CLR via C#你可以找到一个EventSet这样类的完整实现。
(即使你没有这本书,你可以从http://www.wintellect.com/Media/Default/Downloads/CLR_via_C_,_3rd_Edition_Code_by_Jeffrey_Richter_(January_20,_2010).zip下载示例代码。有问题的类是在“Ch11-1-EventSet.cs”。)
至于问题去什么事件是:
说你有这行代码在你的类:
public event EventHandler<NewMailEventArgs> NewMail;
那么C#编译器将转换线之上分为三个结构:
私人代表字段。 (喜欢的东西:
private EventHandler<NewMailEventArgs> NewMail;
公共add_Xxx方法(其中xxx是事件的名称),有兴趣的用户可以用它来注册与事件的回调委托
公共remove_Xxx方法(其中xxx为事件名称)用户可以使用从事件注销。
(所有血淋淋的细节可以在上述书中11.2节找到。)
所以在其他禾rds你可以在你的Event集合类中存储的'东西'只是一个普通的老式委托而已。
0
2
事件就像属性或方法;你不能存储它们的实例。你可以使用反射,但这可能不是你想要的。
你的意思是你想存储一个方法列表,当你的事件被触发时调用?事件已经做到了。
编辑:
嗯,我想我现在就买下。如果你只是简单地解雇你的事件,那么只有想要它的B实例才能得到它。如果传入事件参数引发事件的A实例,那么B实例将能够告诉它来自哪里。但是一个B永远不会从一个没有要求事件的A那里得到一个事件。
编辑:
也许不是。你只想在B中的一个上发起一个事件?使B实现具有回调方法的接口。相反,触发一个事件,调用方法上B.
相关问题
- 1. Clojure词典词典
- 2. Python:词典中的词典?
- 3. Marklogic值词典和单词词典
- 4. 字典词典
- 5. 牛津词典的单词表文件
- 6. XML文件,字典,词典嵌套
- 7. 轻松构建一个词典或词典的词典
- 8. 词典
- 9. 词典API(词法)
- 10. 在词典理解条件
- 11. 从.txt文件到词典
- 12. 文本文件词典Java
- 13. 词典通过XML文件
- 14. 结合词典的两个词典(Python)
- 15. 转换词典的词典串
- 16. 在Python中更新词典词典
- 17. 不能在词典中使用词典
- 18. 如何将词典字典转换为Ansible vars文件中的词典列表?
- 19. 词频与词典理解
- 20. 词典到Python的字典
- 21. 查询字典词典?
- 22. Python中的字典词典!
- 23. 清除词典的字典
- 24. python词典的字典
- 25. 字典词典雨燕
- 26. 合并字典的词典
- 27. C#词典中的字典
- 28. 使用词典
- 29. flex词典dataProvider?
- 30. 词典和DotLiquid
通过事件,你的意思是CLI事件与处理程序? – Minustar 2012-01-06 13:47:50
你的用例是什么? – BrokenGlass 2012-01-06 13:47:54
您可以将*代表*存储在列表或字典中,当然 - 您的意思是?也许你可以举一个更清楚的例子吗? (注:授权情况下将无法反映变化 - 它们是不可变的副本) – 2012-01-06 13:48:20