日期:2014-05-18  浏览次数:20752 次

数组的CopyTo有什么用处啊?
我觉得浅复制没什么用哇,直接引用不就好了,为什么有的程序会用到呢?有什么技巧在里面吗?

------解决方案--------------------
CopyTo怎么会是浅复制呢? 货真价实的复制啊
------解决方案--------------------
探讨

CopyTo怎么会是浅复制呢? 货真价实的复制啊

------解决方案--------------------

前几天问的一个帖子。。。LZ参考一下
------解决方案--------------------
C# code
int[] a = new int[3] { 1, 2, 3 };
        int[] b = new int[3];
        a.CopyTo(b, 0);
        b[1] = 100;
        for (int i = 0; i < a.Length; i++)
            Response.Write(a[i] + "<br/>");
        for (int i = 0; i < b.Length; i++)
            Response.Write(b[i] + "<br/>");

------解决方案--------------------
C# code
        static void Main(string[] args)
        {
            int[] a = { 1, 2, 3, 4 };
            int[] b = new int[4];
            a.CopyTo(b,0);
            b[0] = 10;
            Console.WriteLine("{0} - {1}",a[0],b[0]);
            Console.Read();
        }

------解决方案--------------------
如果数组内的元素是引用类型,那么输出应该是一样的。所以浅复制应该是对的。
C# code
TextBox[] a = new TextBox[3] { new TextBox(), new TextBox(), new TextBox() };
        TextBox[] b = new TextBox[3] { new TextBox(), new TextBox(), new TextBox() };
        a[0].Text = "你好";
        a.CopyTo(b, 0);
        b[0].Text = "垃圾";
        for (int i = 0; i < a.Length; i++)
            Response.Write(a[i].Text + "<br/>");
        for (int i = 0; i < b.Length; i++)
            Response.Write(b[i].Text + "<br/>");

------解决方案--------------------
另外CopyTo方法的第一个参数是Array类型,所以用此方法可以在各种数组集合间转换,比如泛型集合转成数组。
------解决方案--------------------
探讨

如果数组内的元素是引用类型,那么输出应该是一样的。所以浅复制应该是对的。
C# code
TextBox[] a = new TextBox[3] { new TextBox(), new TextBox(), new TextBox() };
TextBox[] b = new TextBox[3] { new TextBox(), new TextBox(), new T……