Re: [VB6 ] 呼叫function的一個問題,為什麼要set

看板Visual_Basic作者 (躂躂..)時間17年前 (2008/07/25 01:59), 編輯推噓6(604)
留言10則, 7人參與, 最新討論串2/3 (看更多)
※ 引述《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
Oh my god 我買的書都沒寫這個
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
這個圖做的真好 簡直跟書上的圖一模一樣XD
07/25 20:54, 6F

07/26 11:56, , 7F
類似C的指標變數是嗎?
07/26 11:56, 7F

07/26 19:11, , 8F
一樣是參考到某個記憶體位址 但不能直接存取記憶體
07/26 19:11, 8F

07/26 19:12, , 9F
到是可透過copymemory存取
07/26 19:12, 9F

07/26 23:10, , 10F
沒有到"指標"那麼嚴重啦, 就跟C#/Java都有的reference一樣
07/26 23:10, 10F
文章代碼(AID): #18YCBles (Visual_Basic)
文章代碼(AID): #18YCBles (Visual_Basic)