今天在网上看到有个问题大致如下: string a = "1"; string b = a; b = "2";//重新分配地址 //重新分配后b 的地址和a没有任何关系 Console.WriteLine("a:{0} ,b:{1}",a,b); 先不看说明: 输出结果是 a:1 ,b:2 和大家希望的一一样,原因 string每赋一次值就会创建一个新的内存地址。 但是类就不同,它是一直使用原有地址,直到对象消失!