我需要创建一个对象的引用,其中Prog2是对Prog1的引用。这里我需要的是:
dim Prog1 as myclassprogressbar
dim Prog2 as myclassprogressbar
Prog1.initialize()
Prog1.max=10
Prog1.min=1
Prog1.value=5
Prog2.initialize()
Prog2.max=10000
Prog2.min=100
Prog2.value=500
Prog2=Prog1
Prog1.value=7
debug.print Prog2.value
7
是否可以像这段代码一样创建对象的引用?
您需要使用New
实例化该类。然后假设myclassprogressbar
是一个类,因为类是引用类型,在分配Prog2 = Prog1
之后,变量Prog2
将指向Prog1
指向的同一个对象。
所以如果你给Prog1.Value
分配一些东西,那么因为Prog2
指向同一个对象,那么Prog2.Value
将与Prog1.Value
相同。
定义Prog1和Prog2后,每个变量都指向内存中的不同对象:
Variable | Memory
---------------------------------------------------
Prog1 --> | [Min:1 Max:10 Value:5 ]
Prog2 --> | [Min:100 Max:1000 Value:500]
设置Prog2 = Prog1
之后,它们都指向内存中的同一个对象,并且你分配给Prog2
的对象发生的唯一事情就是,对象仍在内存中,你只是丢失了对该对象的引用:
Variable | Memory
---------------------------------------------------
Prog1, Prog2 --> | [Min:1 Max:10 Value:5 ]
| [Min:100 Max:1000 Value:500]
所以,如果你设置Prog1.Value = 7
或Prog2.Value = 7
,结果是一样的:
Variable | Memory
---------------------------------------------------
Prog1, Prog2 --> | [Min:1 Max:10 Value:7 ]
| [Min:100 Max:1000 Value:500]
您可以了解更多有关Value Types and Reference Types的信息。