VS2022中VB.NET WinForms应用NetworkAvailabilityChanged事件报错BC31029原因
错误原因及修正方案
这个BC31029错误的核心是事件处理方法的参数类型不匹配:
- My.Application的
NetworkAvailabilityChanged事件,要求的参数类型是Microsoft.VisualBasic.Devices.NetworkAvailableEventArgs - 你代码里导入并使用的是
System.Net.NetworkInformation.NetworkAvailabilityEventArgs,这是两个不同命名空间下的类——即便它们都包含IsAvailable属性,VB.NET也会严格校验方法签名的类型一致性,因此触发了兼容性错误。
修正方法二选一:
- 替换导入的命名空间
把代码顶部的Imports System.Net.NetworkInformation换成Imports Microsoft.VisualBasic.Devices,代码即可正常运行:
Imports Microsoft.VisualBasic.Devices Private Sub MyApplication_NetworkAvailabilityChanged(ByVal sender As Object, ByVal e As NetworkAvailableEventArgs) Handles Me.NetworkAvailabilityChanged Debug.Print(e.IsAvailable.ToString) End Sub
- 指定完整的参数类型名
保留原导入的命名空间,直接在参数里写出NetworkAvailableEventArgs的完整命名空间路径:
Imports System.Net.NetworkInformation Private Sub MyApplication_NetworkAvailabilityChanged(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.Devices.NetworkAvailableEventArgs) Handles Me.NetworkAvailabilityChanged Debug.Print(e.IsAvailable.ToString) End Sub
内容的提问来源于stack exchange,提问作者ezio
相关产品推荐
相关产品推荐

