VB.Net 2005
我有一个现已关闭的Dialog1。要从模块中获取Dialog1的信息,我需要使用
Dim oDialog1 as Dialog1 = **New** Dialog1.
VB.Net 2008
我有一个仍然打开的Dialog1。要从模块中获取Dialog1的信息,我需要使用
Dim oDialog1 as Dialog1 = Dialog1
。
VB.Net 2005无法使用Dim oDialog1 as Dialog1 = Dialog1
进行编译并坚持新
发生了什么,为什么我需要不同的初始化语法?
答案 0 :(得分:0)
Dialog1是您正在创建的对象的类型。
Dim oDialog1 as Dialog1 = Dialog1
与说
相同MyCat is a Cat, and it's a Cat.
没有意义。
如果你需要知道猫有多少腿,或猫是否毛茸茸,那么你可以说Cat.CountLegs,但你不能说Cat.GetName或Cat.Age,因为你不知道哪只猫你在谈论。
对话框也一样。
Dim oDialog1 as Dialog1 = Dialog1
不是指任何特定的Dialog,只是一般的Dialog1,它没有意义(也不应该在VB.NET 2008中编译)。
在哪里
Dim oDialog1 as Dialog1 = New Dialog1
正在为您提供一个名为oDialog1的全新Dialog1。你询问的关于oDialog1的一切都会给你一个关于Dialog1对象的通用默认值。
Dialog1没有位置,因为它还不存在。但是因为你已经使用NEW关键字创建了一个新的实例,所以oDialog1将是你的第一个Dialog1类型的对象 - 你可以给它一个位置,等等。
如果你打电话
Dim oDialog2 as Dialog1 = New Dialog1
然后你将有两个 Dialog1 - 每个都有一个单独的位置等。
如果你给Dialog1和oDialog1更好的名字,比如UserConfirmationDialog和confirmExit,它会更有意义。
然后会变成类似
的东西Dim confirmExit as UserConfirmationDialog = New UserConfirmationDialog.
可能
Dim confirmDelete as UserConfirmationDialog = New UserConfirmationDialog.