以下注释说明了原因:
int i1 = 20; //int为值类型
int i2 = i1; //将i1的值传给i2,i1和i2保存在不同内存位置,值都为20
i1++; //i1值改变,不影响i2的值,因此i2还是原来的值20
Console.WriteLine(i2);
Person p1 = new Person(); //类属于引用类型
p1.Age = 20;
Person p2 = p1; //将p1的引用传给p2,此时p1、p2指向相同的内存位置
p1.Age++; //改变p1的值,由于p1、p2指向的是相同的内存位置,等于说p2的值也改变了
Console.WriteLine(p2.Age); //由上注释可知,p2的值也为21 |