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这就是区别
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 -> -/
|