上代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
class C
{
public int Value = 0;
}
static void Main(string[] args)
{
C r1 = new C();
C r2 = r1; //r1 r2 是同一个变量的指针,
r2.Value = 112;
Console.WriteLine("refs:{0},{1}",r1.Value, r2.Value);
Console.ReadLine();
}
}
}
此时r1.value,r2.value 都为112.
开始一直没搞懂为什么修改了 r2.value的值 也会导致r1.value变化.
//是不是r1, r2 都是value这个变量的指针,给r2.Value 赋值 其实也是给r1.value 赋值,所以最后结果 都是112
再验证下
C r1 = new C();
C r2 = r1; //r1 r2 是同一个变量的指针,
r2.Value = 112;
Console.WriteLine("refs:{0},{1}",r1.Value, r2.Value);
Console.ReadLine();
r1.Value = 12;
此时r1.value,r2.value 都为12.