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
进行编译,并且坚持使用新。
怎么回事,为什么我需要不同的初始化语法?
发布于 2010-10-12 01:55:33
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
并不是指任何特定的对话框,只是对话框1的一般情况,这是没有意义的(也不应该在VB.NET 2008中编译)。
何地as
Dim oDialog1 as Dialog1 = New Dialog1
给你一个全新的Dialog1,叫做oDialog1。有关oDialog1的所有询问都将为您提供关于Dialog1对象的通用的、默认的。
Dialog1不会有位置,因为它还不存在。但是,因为您已经使用新关键字创建了一个新实例,所以oDialog1将是Dialog1类型的第一个对象--您可以给它一个位置,等等。
如果你打电话
Dim oDialog2 as Dialog1 = New Dialog1
然后,您将有两个对话框1-每一个有一个单独的位置,等等。
如果您给Dialog1和oDialog1更好的名称,比如UserConfirmationDialog和confirmExit,这将有助于更好的理解。
然后它就会变成
Dim confirmExit as UserConfirmationDialog = New UserConfirmationDialog.
也有可能
Dim confirmDelete as UserConfirmationDialog = New UserConfirmationDialog.
https://stackoverflow.com/questions/3910322
复制相似问题