在我的Module1.vb代码中,如果我将Watch分配给 Form1.Width ,我会收到错误“对非共享成员的引用需要对象引用”,如果我分配了一个注意 Form1 ,我收到错误“Form1是一个类型,不能用作表达式”
但是,Debug.Print Form1.Width
有效。
我在这里读到 (https://msdn.microsoft.com/en-us/library/aa262343(v=vs.60).aspx) 该
Visual Basic为每个表单类创建一个隐藏的全局对象变量。 就好像Visual Basic已将以下声明添加到您的项目中:
Public Form1 As New Form1
Visual Studio Watch是否坚持将Form1作为类而不是实例(如在Debug.Pring中)访问?
我错过了一些明显的东西吗?
答案 0 :(得分:1)
编写自己的代码时,以这种方式使用Form1
引用默认实例。调试器不支持默认实例。您需要将默认实例分配给字段或属性,然后观察它。
调试器不支持默认实例的一个原因可能是它们是线程特定的。如果你打破多个线程,然后想要观看默认实例,你会看到哪个线程?我想你可以默认使用UI线程,但是你不能再看其他任何东西了,它也可能不够明显。