Let 与 Set 的不同用法

来源:互联网 发布:win8 mac地址 编辑:程序博客网 时间:2024/05/15 12:21
Let是BASIC使用者的老朋友了,在QB时代就已经有Let这个叙述,而Set是VB后来新增的。
Let与Set一样都是将变量传递到另一个变量,但两者还是不同,VB的变量有非常非常多的种类,但小瓜瓜自己把他们分成两类,一种是资料变量,另一个是物件变量。Let用于定义资料变量;Set用于定义物件变量。
Private Sub Command1_Click() 
Dim A As Long, B As Long, C As Long 
Dim X As Object, Y As Object, Z As Object
Let A = B  '相当于 A = B, A的值与B的值相同,但各有自己的内存空间
Let C = A 
Let B = A
Set X = Y  '用于物件, X 的内存地址指向 Y , 因此 Y 变, X 就跟着变 
Set Y = Z 
Set Z = X
Set A = B  '错误,资料变量不能用Set转移资料
Let X = Y  '错误,物件变量不能用Let转移资料
End Sub
Private Sub Command1_Click() 
Dim chdNode As Object, chdText As String 
Set chdNode = TreeView1.Nodes.Add(, , , "节点") 
Let chdNode = TreeView1.Nodes.Add(, , , "节点")  '错,因为 TreeView1.Nodes.Add 会产生物件
chdNode = TreeView1.Nodes.Add(, , , "節點")   '错,因为省略不写则会被视为Let
Set chdText = TreeView1.Nodes(1).Text    '错,TreeView1.Nodes(1).Text 不是物件,只会把值传出来'WWW.IZXBC.COM
Let chdText = TreeView1.Nodes(1).Text 
chdText = TreeView1.Nodes(1).Text 
End Sub
Let与Set有各自的特性,Let用来设定传值型(ByVal)的变量,而Set是用来设定参考型(或传址型)(By Refrence)的变量,由于QB并没有物件这一种资料形态,所以不会有 Set变量 = 变量 的语法出现。
0 0