gpt4 book ai didi

vb.net - 在 vb.net 中引用未实例化的对象

转载 作者:行者123 更新时间:2023-12-02 09:01:03 24 4
gpt4 key购买 nike

嗨,我必须学习 VB.net 才能找到一份新工作,之前我是一名 C# 人员。我刚刚发现 VB.net 的一个有趣的功能。我可以引用尚未实例化的第二种形式上的对象!

因此,从 Form1 中我可以获取 Form2 上 textbox1 的文本属性,如下所示

Dim txt As String = Form2.TextBox1.Text

谁能解释一下这是如何工作的?是否所有表单都在程序开始时设置,然后在整个程序生命周期中切换它们的可见性?

最佳答案

VB 中的表单是一种特殊情况。编译器在 My.Forms object 中生成强类型表单列表。 My 命名空间。每个表单都作为属性 My.Forms.TheNameOfTheForm 公开。这些属性始终返回有效的实例 - 即,如果表单之前尚未实例化,那么当您第一次使用该属性时,它就会实例化。

到目前为止,一切顺利。

但是 Microsoft 也做出了一个脑死亡 (!) 的决定:默认从 My.Forms 对象导入属性,各处,而您无能为力。表面上看,这是出于向后兼容 VB6 的原因,但这是无稽之谈,因为 VB7 (.NET 1.0) 没有此功能,只是后来才出现的。

但只是为了澄清:

Are all forms instatiated at the start of the program …?

不,幸运的是没有。它们会在您第一次访问该属性时实例化。

关于vb.net - 在 vb.net 中引用未实例化的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11382679/

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