我增加了一个事件到用户控件,我调用用户控件的消费窗口时,编译器如何生成事件处理程序代码?
我的问题是:当我们通过IDE分配事件处理程序编译器生成什么样的代码?
因此,我也可以使用类似的东西来自动在运行时编写事件处理程序。
我知道我们可以写一个事件处理程序,如在这里我写我的事件处理程序:
SearchControl.SearchChangedEvent += new RoutedEventHandler(SearchControl_SearchChanged);
在这种情况下,抛出的错误是,没有超载匹配,所以我尝试做同样的事情编译器通过代码完成。编译器如何自动知道参数?
编辑:解决方案。
我发现我在那里这篇文章中混淆关注的领域:http://msdn.microsoft.com/hi-in/magazine/cc785480%28en-us%29.aspx
在“路由事件概述”节中,作者写道:
看到这一点,去了构造函数 类,在 InitializeComponent方法调用右键单击,然后选择 转到从 背景menu.The编辑器将显示一个 生成的代码文件定义(用命名为 约定.i.g.cs或.i.g.vb) 包含通常在编译时生成的代码 。
我发现后面的代码生成了!
#line 6 "..\..\Window1.xaml"
this.myButton.Click +=
new System.Windows.RoutedEventHandler(
this.myButton_Click);
谢谢,对于那些与问题陈述有点混淆的人。我希望现在能够说清楚(这是我直到找到解决方案时才解释问题的原因:)
感谢盲目,,,我现在得到什么编译器...... 有没有办法看到编译生成的类文件(如果有的话)?想想看过类似的东西,虽然记不起来...... – 81967 2009-08-29 12:06:22
如果你的意思是ildasm.exe,它在你的'C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ bin'文件夹中,你运行它,选择你编译的二进制文件,它会为你反汇编。对不起,如果这不是你要求的,你的问题有点不清楚。 – Blindy 2009-08-29 12:14:11
感谢Blindy的帮助......我一定会在遇到它时告诉你答案。 – 81967 2009-08-29 12:35:20