2
|
bob-the-destroyer · 技术社区 · 14 年前 |
1
1
弗朗西斯科·巴勒纳的书 Programming Microsoft Visual Basic 2005 The Language 具有在Visual Studio 2005和2008中工作的技术。有一个通用的事件处理程序例程,它通过一个字符串来标识正在触发的事件。 这是一个相当大的代码,我觉得没有作者的许可,我不能在这里发表这么长的摘录。这是一个描述,可能足以让你去。代码通过反射注册事件处理程序,如代码。它为每个事件创建一个小型工作对象的实例,以存储事件的名称。工作进程处理事件,并使用一个提供事件名称的附加参数调用其客户机。这听起来像很多物体,因此开销很大,但我相信它和 what the compiler does for you if you use lambda expressions 以及大大低于动态方法的。 如果你 buy the book 有更完整的解释和完整的代码。 |
2
1
这里的问题当然是你只有 一 的事件处理程序 全部的 事件。是的,您需要为一个事件创建一个处理程序,这样您就可以拥有一个特定于事件的数据位,比如名称。到目前为止,最干净的方法是使用lambda表达式。但您需要子品种,这需要vb.net版本10(vs2010)。 对于以前的版本,动态方法确实可以解决您的问题。尽管走起来很痛苦。首先在vb.net中编写代码,使用ildasm.exe找出需要生成什么IL。 |
Karl · 如何引发PrintPage的事件? 2 年前 |
Daniel · LINQ从列表的dataTable中提取部分匹配 2 年前 |
limelatte · 如何在datagridview中屏蔽特定列? 2 年前 |
Orsi · 选择嵌套列表的最大值和最小值。网 2 年前 |
D T · 如何为Excel Com设置公式? 2 年前 |
Lenin · 将数组中的每个元素与另一个数组中的相应元素相乘 2 年前 |