在Visual Studio中关闭子例程的自动添加

时间:2009-11-20 17:07:47

标签: vb.net visual-studio

我的项目是用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

我猜系统会添加第二个例程,因为第一个例程中缺少参数列表(不需要但可能需要)列表。

2 个答案:

答案 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)

当您为不存在的控件编写处理程序时,会发生这种情况,然后在设计模式下将控件添加到窗体,然后双击该控件。