[英]Moving asp.net team from VB.Net to C#, seems are we are missing something with wiring up events?
我正在工作的asp.net(主要是Webforms)团队最近决定从vb.net转到c#。 此后,曾经不能很好地读写C#代码的团队中的人开始迁移,每次我们雇用一个新人时,成为vb.net商店就成为一个问题。
我将保存标准的vb / c#语言战争资料,并坚持使用我今天遇到的一件事。
使用vb.net,当我们要处理某个对象的某些事件时,我们只需从左上角的列表中选择该对象,从右上角的列表中选择该事件,然后创建完全连线的事件处理程序。 同样非常清楚的是,由于最后使用了“ Handles ...”,因此该方法是一个事件处理程序。
在C#世界中, 似乎我们还有一些糟糕的选择。
1)通过在aspx标记中键入事件的名称和事件处理程序来手动连接事件。 就像在aspx中实际编写“ OnLoad = SomeFunction”一样。 (编辑:我没有意识到他仅适用于表单,而不适用于任何包含的控件,因此我想这并不是一个选择)
2)使用自动连线事件,并正确命名方法和签名,以使其匹配。
我希望我缺少其他更好的选择。
到目前为止,我已经看到了以下两个选项:
1)我们必须知道事件名称和事件参数。 我们不能只看列表,而要像“哦,这有OnItemClick”,我必须去研究一些控制文档。 同样,我必须去研究事件args才能发现ItemClick需要RadPanelBarEventArgs作为第二个参数。 浪费时间。
2)我没有任何关于连接事件的编译检查。 如果我将方法签名命名为错误,或者如果在aspx页面中键入错误的方法签名,则一切都会正常编译,直到运行时出现不匹配的情况为止。 (编辑:我的意思是,如果我键入onClick =“ ABC”且事件处理程序的名称为“ ABCD”,则在编译时将不会捕获该事件。使用VB,在编译时会捕获到重命名/错误键入事件处理程序名称的问题,因为存在“句柄”。如果我有onClick =“ ABC”,并且此控件onClick确实需要SpecialEventArgs,但我不小心使用SomeRegularEventArgs,也是如此。
我希望我们错过了一些东西,并且有更好的方法可以做到这一点。
这是已知的“错误”或缺少的功能。 请参阅Visual Studio 2010,其中显示了来自代码背后的可用事件
如果要在C#中自动生成事件:
至于2号。您是否将代码放在代码隐藏文件中? .aspx.cs?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.