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

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 -> -/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值