在处理表单之间的公共变量时使用实例或表单名称?

时间:2009-11-17 03:51:15

标签: vb.net winforms

在vb.net中,您可以使用表单名称和变量来处理来自其他表单的公共变量。

form2.show
form2.k = 3

但是,如果使用表单变量来显示表单的实例,则必须使用该变量名称来处理公共变量。以下示例中显示了相同表单的两个实例。公共变量k仅在表单的第一个实例中分配值3,该值来自form2.showfrm.k可用于将值分配给其他表单。

dim frm as new form2
form2.show
frm.show
form2.k = 3

我的问题:假设应用程序中只显示了一个表单实例,使用表单名称(form2.k)处理公共变量是否可靠,或者更好地使用表单显示表单变量并使用它来引用表单的实例(frm.k)?相同的答案是否适用于财产和公共变量?

2 个答案:

答案 0 :(得分:3)

这里有一点澄清。在使用表单名称访问变量的情况下,您仍然使用实例来访问变量。这是VB.Net的一个功能,称为默认实例。基本上VB.Net将为每种表单类型维护一个实例。它将转换您的代码以访问此实例变量。这是VB6的一个非常流行的功能,它被移植到VB.Net(2005年我相信)。

表单显示一次的情况是此功能设计的确切情况。所以是的,使用它来访问价值是可靠的。这适用于任何实例成员。

这当然是假设一切都是单线程的。

答案 1 :(得分:0)

绝对是#2,使用实例变量。我不知道其他语法仍然有效!这是VB4的剩余部分,为了兼容性而转移到VB6。我以为他们把它丢在.net中。不要以为它甚至可以在C#中工作。