gpt4 book ai didi

vb.net - 有没有办法在 Visual Studio 中调试 VB.NET With 子句?

转载 作者:行者123 更新时间:2023-12-04 20:47:15 25 4
gpt4 key购买 nike

有时您并不真正关心变量的名称,因为它不会超出您的 sub 范围。事实上,指定名称会增加一行额外的代码。此外,现在您要处理这个名称,这可能会增加潜在的重构工作(如果您决定稍后重命名)。看看下面的代码:

Dim fileInfo As New FileInfo("filename.txt")
With New FileSystemWatcher
.Path = fileInfo.DirectoryName
.Filter = fileInfo.Name
.EnableRaisingEvents = True
AddHandler .Changed, AddressOf OnChanged
End With

它是一个完全有效的 VB.NET 构造,看起来整洁干净。但是,在调试时,假设您在 With 中放置了一个断点条款,没有选择捕获那个 .Path以确保它设置正确。

我在这里遗漏了什么,还是 Visual Studio 真的没有为 .Property 提供调试功能?内部语法 With声明?我用的是 2010。

显然,上面的代码并没有太多需要调试的地方,但是这样无名的 With的例子还有很多。方法会派上用场。

顺便说一句,名为 With条款有同样的问题,即如果我要写:
Dim fsw As New FileSystemWatcher
With fsw
.Path = fileInfo.DirectoryName
.Filter = fileInfo.Name
.EnableRaisingEvents = True
AddHandler .Changed, AddressOf OnChanged
End With

我仍然无法拉取 .Path 的值,必须始终以 fsw 作为前缀.

嵌套时问题会越来越大 With条款中的一个。

最佳答案

带有未命名变量的 With 语句对调试器来说是一个巨大的挑战,没有解决方法。像“fsw”这样的小命名辅助变量没有任何问题,它无论如何都存在,由编译器自动生成。这不是无名的,只是无法形容。赞 VB$t_ref$L0) ,调试器不会让你输入它,因为它使用了在 VB.NET 标识符名称中无效的字符。这是有意的,它确保它永远不会与您使用的名称发生冲突。这也可以防止它出现在“自动”窗口中。

您已经通过命名变量找到了正确的解决方法。从那里调试很简单,只需将鼠标悬停在变量名称上,而不是字段名称上。当然,在所有其他调试器窗口中都运行良好,尤其是 Autos 窗口将活跃起来。不要犹豫,放弃 With 语句,转而完整地编写语句,IntelliSense 可以帮助您减少繁琐的工作。

关于vb.net - 有没有办法在 Visual Studio 中调试 VB.NET With 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15256776/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com