看板 Visual_Basic 關於我們 聯絡資訊
-- Arr1() = {7,9,1,3,2} sub fun(ByVal ArrX) Array.Sort(ArrX) end sub 然後執行fun(Arr1) 跑完之後Arr1值居然也跟著被排序了 call by value不是不會修改到function外部的參數嗎? 希望有大大可以幫忙解惑orz -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.46.164 ※ 編輯: r30307 來自: 36.227.111.87 (01/02 21:19)
a926:陣列型別是從抽象基底型別 Array 衍生的參考型別 01/03 08:48
a926:你把Arr1傳進來改個名叫ArrX然後再做排序 01/03 08:49
a926:會改到Arr1是正常的 01/03 08:49
a926:如果是實質型別就不會有你說的問題 01/03 08:49
a926:問題應該是 01/03 08:51
a926:參考型別變數的指派會複製物件的參考,但不會複製物件本身 01/03 08:51
a926:可是你這程式沒有回傳值,這結果應該是你要的? 01/03 08:52
r30307:感謝 其實sub裡面做了不少事只是沒有列出來 01/03 22:21
r30307:原本只是想要幾個需要的值 但不希望弄亂原陣列的index 01/03 22:22
r30307:現在唯一想到的解法就是另外弄個一樣的陣列做sort就是.. 01/03 22:24