winforms - winforms VB.Net的非共享方法引用,如同它们被共享一样?

  显示原文与译文双语对照的内容
115 0

我在 VB.Net 应用程序上做了一些支持,虽然我主要是一个 C# 开发人员。我遇到了我认为是"奇数"代码,因为我的C# 思想告诉我代码是错误的,不应该编译。为了发现在特定表单中引用的所有引用,在特定表单中查找引用,并在没有实例化类的类的情况下直接引用该类的非分片方法。换句话说,我看到这样的代码:

FrmCareer.ShowDialog(careerId)
FrmCareer = Nothing

下面的示例演示了 instance ShowDialog,它引用了实例成员变量,因此我不希望在所有的all method方法中使用智能代理。但它确实存在而且它。谁能解释下这里发生了什么?

时间:原作者:0个回答

88 1

VB.NET 具有将所有窗体的集合作为属性保存在 My.Forms 对象的( 非常不错) 特性。当你第一次访问对象时,这些对象被实例化。这样,你就可以得到每个表单的默认实例,你可以。

在不那么好的方面,VB坚持导入对象全局属性,并且你可以做任何事情来改变它的性能。

换句话说,应用程序中任何表单的类名都作为该窗体的全局实例。

原作者:
71 0

FrmCareer 是否为表单的名称?如果是,我认为每个窗体都有一种可以访问的魔术"单"-like变量。开发者可能只想要一个 FrmCareer,这样任何代码都可以像这个( 要显示表单,在本例中) 那样访问它。在 C# 术语中,它就像一个全局 static 。

是的,看这个问题- 它有更好的解释。

原作者:
...