2,462
社区成员
发帖
与我相关
我的任务
分享
Dim a As Integer
Dim b As Integer
a = 100
b = a
b = 101
Debug.Print a, b
这里面,a和b都不是引用,所以b=a实际上是将数值复制了一份。
从语法角度上说,其实vb6里的值类型赋值语句都省略了一个关键字“LET” 你在赋值语句前面加上let会自动格式化出关键字,执行起来也都正确的。
可以理解为let是值类型的赋值,数据copy了一份给了新变量,新变量处理复制过来的数值。let可省略不写
set是引用类型的赋值,指针copy了一份给了新变量,新变量处理复制过来的指针所指向的对象。
如果在例1里面加个变量c
c=a(1)
这时候a是引用对象,但是a(1)是具体的值变量。c的任何修改都不会影响a(1)
用文字表达语义就是:把a的指针所指向的对象的第一个元素值复制一份给值变量c
Dim a As Integer
Dim b As Integer
a = 100
b = a
b = 101
Debug.Print a, b
这里面,a和b都不是引用,所以b=a实际上是将数值复制了一份。
从语法角度上说,其实vb6里的值类型赋值语句都省略了一个关键字“LET” 你在赋值语句前面加上let会自动格式化出关键字,执行起来也都正确的。
可以理解为let是值类型的赋值,数据copy了一份给了新变量,新变量处理复制过来的数值。let可省略不写
set是引用类型的赋值,指针copy了一份给了新变量,新变量处理复制过来的指针所指向的对象。
如果在例1里面加个变量c
c=a(1)
这时候a是引用对象,但是a(1)是具体的值变量。c的任何修改都不会影响a(1)
用文字表达语义就是:把a的指针所指向的对象的第一个元素值复制一份给值变量c[/quote]
差不多懂了,谢谢大神!
Dim a As New Collection '定义a为一个集合对象
a.Add "test" 'a 集合中添加一个元素
Dim b As Object '定义B
Set b = a '令b引用a,也就是b的指针指向了a
Debug.Print b(1) '这时候b的第一个元素里,我们可以得到刚才在a添加的那个test
b.Add "addition" '在b添加一个元素
Debug.Print a(1), a(2) '在a里同样能得到新增的这个元素