Re: [VB6 ] 呼叫function的一個問題,為什麼要set
※ 引述《saininniang (莎里奈)》之銘言:
如果你有語法上的疑惑,
建議您可以直接參考 MSND 上的說明, 會更明確..
雖然 VB6 之前的文件已經找不到了,
不過也可以參考 VBScript 的文件, 和 VB6 時的語法其實大同小異
Set Statement
http://msdn.microsoft.com/en-us/library/4afksd44(VS.85).aspx
= 與 Set 的不同在,
= 只是單純的 value 的 assign/copy,
(其實你這篇的第一個推文者就點出重點了..)
就像
a = 10
b = a
在記憶體中, a 和 b 會有自己的一塊空間,
┌────┐
a│ ???? │ <-- a和b在記憶體中的示意圖
├────┤
b│ ???? │ (初始時的內容是未知的)
└────┘
┌────┐
a│ 10 │ <-- 把 10 copy進 a
├────┤
b│ ???? │
└────┘
┌────┐
a│ 10 │
├────┤
b│ 10 │ <-- 把 a 的內容 copy 一份到 b
└────┘
但 Set 跟 =, 也就是 "assign" 是不一樣的東西.
他並不是 copy 一份 object , 而是要 refer(參考、指向、關連等等) 一個ojbect
Set Obj = CreateObject(....)
┌────┐
Obj│ ‧─┼─┐
├────┤ │
............ │
├────┤ │
│ │←┘ <-- 指向某個 CreateObject() 所建立的object
└────┘
好幾個 var 是可以同時 refer 同一個object的,
所以可以
Set Obj2 = Obj ' 也是要用 Set
如果你改變Obj2, 那Obj也會觀察到相同的變化..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.0.79
→
07/25 03:22, , 1F
07/25 03:22, 1F
推
07/25 08:26, , 2F
07/25 08:26, 2F
→
07/25 08:27, , 3F
07/25 08:27, 3F
推
07/25 13:55, , 4F
07/25 13:55, 4F
推
07/25 14:38, , 5F
07/25 14:38, 5F
推
07/25 20:54, , 6F
07/25 20:54, 6F
推
07/26 11:56, , 7F
07/26 11:56, 7F
推
07/26 19:11, , 8F
07/26 19:11, 8F
→
07/26 19:12, , 9F
07/26 19:12, 9F
→
07/26 23:10, , 10F
07/26 23:10, 10F
討論串 (同標題文章)