C# 学习笔记 数组的复制和array.copyto()

来源:互联网 发布:js数据添加二维数组 编辑:程序博客网 时间:2024/06/05 14:33

class MyClass
    {
        public int i;
    }
static void Main(string[] args)
        {
            MyClass[] myClasses1 = new MyClass[1];
            MyClass[] myClasses2 = new MyClass[1];
             
            myClasses1[0] = new MyClass();
            myClasses1[0].i = 1;
 
            myClasses1.CopyTo(myClasses2, 0);
            //myClasses2 = myClasses1;
            myClasses2[0].i = 2;
 
            Console.WriteLine("myClasses1[0].i:{0}\nmyClasses2[0].i:{1}", myClasses1[0].i, myClasses2[0].i);
            Console.WriteLine(myClasses1 == myClasses2);
        }


CopyTo之后又两个数组Object

赋值之后只有一个数组Object
这就是区别
Assembly code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
最开始
myClasses1 ->  Array object1 -> MyClass object1
myClasses2 ->  Array object2 -> MyClass object2
 
如果用赋值运算:
myClasses1 -\
             |-> Array object1 -> MyClass object1
myClasses2 -/
 
如果用CopyTo:
myClasses1 -> Array object1 -> -\
                                |-> MyClass object1
myClasses2 -> Array object3 -> -/
0 0
原创粉丝点击