我的项目是用VB.Net构建的
很多时候我发现Visual Studio已经为我的代码文件添加了子程序,即使已经存在完全相同名称的子程序。这可能会导致调试噩梦,因为新的空例程似乎会覆盖正确的例程。我想如果我双击设计视图中的控件,就会发生这种情况,但我尽量不这样做。
有什么方法可以关闭它吗?
示例:
手动输入
Private Sub TS_Main_View_Network_Click Handles TS_Main_View_Network.Click
系统补充:
Private Sub TS_Main_View_Network_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TS_Main_View_Network.Click
我猜系统会添加第二个例程,因为第一个例程中缺少参数列表(不需要但可能需要)列表。
答案 0 :(得分:1)
在您在评论中提供的示例中,方法为overloaded。
我假设您手动添加了第一个,因为签名对于事件处理程序不正确。 .NET事件处理程序应具有与void EventHandler(object sender, EventArgs e)匹配的签名。
Private Sub TS_Main_View_Network_Click Handles TS_Main_View_Network.Click
Private Sub TS_Main_View_Network_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TS_Main_View_Network.Click
当Visual Studio双击时添加一个事件处理程序(你无法开箱即用),它总是会创建一个具有正确签名的方法。
实际上,你的代码利用了一些VB特性(可能是后期绑定)来让你声明一个没有参数的事件处理程序。你不能用纯粹的静态类型语言来做这件事,比如C#,因为它无效IL:没有参数的方法不能分配给EventHandler
委托({{1}的类型}事件)。在幕后,VB编译器为没有参数的方法创建了某种适配器。
答案 1 :(得分:0)
当您为不存在的控件编写处理程序时,会发生这种情况,然后在设计模式下将控件添加到窗体,然后双击该控件。