我在VB.Net应用程序上做支持,虽然我主要是C#开发人员.我遇到了我认为是"奇怪的"代码,因为我的C#思维模式告诉我代码是错误的,不应该编译,但确实如此.我在特定表单上查找所有引用以查看它的使用位置,并找到对表单的引用的引用,其中直接引用类的非碎片方法而不对类进行实例化.换句话说,我看到这样的代码:
FrmCareer.ShowDialog(careerId)
FrmCareer = Nothing
Run Code Online (Sandbox Code Playgroud)
现在的ShowDialog是不共享的成员,它引用实例成员变量,所以我不希望智能感知列出的ShowDialog方法在所有.但它确实并且它编译.谁能解释一下这里发生了什么?
VB.NET具有(非常好的)功能,即将所有表单的集合保存为My.Forms对象下的属性.首次访问时,会对实例进行实例化.通过这种方式,您可以获得可以引用的每个表单的默认实例.
在不太好的一面,VB坚持全局导入My.Forms对象的属性,你无法做任何改变.
换句话说,应用程序中任何表单的类名称都可以作为该表单的全局实例.
| 归档时间: |
|
| 查看次数: |
341 次 |
| 最近记录: |