[.NET] ByVal失效?

楼主: r30307 (RPG)   2013-12-31 20:19:33
--
Arr1() = {7,9,1,3,2}
sub fun(ByVal ArrX)
Array.Sort(ArrX)
end sub
然后执行fun(Arr1)
跑完之后Arr1值居然也跟着被排序了
call by value不是不会修改到function外部的参数吗?
希望有大大可以帮忙解惑orz
作者: a926 (Aaron)   2012-01-03 08:48:00
阵列型别是从抽象基底型别 Array 衍生的参考型别你把Arr1传进来改个名叫ArrX然后再做排序会改到Arr1是正常的如果是实质型别就不会有你说的问题问题应该是参考型别变量的指派会复制物件的参考,但不会复制物件本身可是你这程式没有回传值,这结果应该是你要的?
楼主: r30307 (RPG)   2012-01-03 22:21:00
感谢 其实sub里面做了不少事只是没有列出来原本只是想要几个需要的值 但不希望弄乱原阵列的index现在唯一想到的解法就是另外弄个一样的阵列做sort就是..

Links booklink

Contact Us: admin [ a t ] ucptt.com