我目前负责支持VB.Net应用程序,尽管我主要是C#开发人员。我遇到了我认为是“奇怪”的代码,很明显从我的C#思维方式来看,这段代码是错误的,不应该编译,但它确实编译了。我在特定窗体上执行了“查找所有引用”操作,以查看其在哪里被使用,并发现对该类的非共享方法进行了直接引用,而没有实例化该类。换句话说,我看到了类似这样的代码:
FrmCareer.ShowDialog(careerId)
FrmCareer = Nothing
现在ShowDialog不是一个共享成员,并且引用实例成员变量,所以我不会期望Intellisense列出ShowDialog方法。但它确实列出了并且编译通过。有人能解释这里发生了什么吗?