C#中引用类型的问题
在C#的CTS中,有个引用类型叫做object,我们都知道引用类型存储在堆中,而且引用类型特点就是假如有多个指向同一地址的变量,那么改变任一都会使这个引用类型发生改变. 
 问题来了,在我将object值付给另一个object类型时,好像并没有达到这个效果,而像值类型之间的复制。。。   
 测试代码如下    
 using   System;   
 namespace   ConsoleApplication1 
 { 
             class   Program 
             { 
                         static   void   Main(string[]   args) 
                         { 
                                     object   object1   =   new   object(); 
                                     object1   =    "object1 "; 
                                     object   object2   =   object1; 
                                     object2   =    "object2 ";   
                                     Console.WriteLine(object2.ToString()); 
                         } 
             } 
 }   
 各位觉得页面应该输出什么呢   ?     
 分数不多,请大侠多多帮忙   谢谢
------解决方案--------------------不是输出“object2”么? 
 这有什么疑问么?
------解决方案--------------------object1 
 又没指向同一个地址
------解决方案--------------------如果是 
 Console.WriteLine(object1.ToString()); 
 应该输出的 "object1 " 
 object object2 = object1;//它把 "object1 "地址告诉了object2 
 如果是 
 Console.WriteLine(object2.ToString()); 
 它输出的 "object2 " 
 虽然在创建object2时给了他一个值。 
 object2 =  "object2 ";//现在又把 "object1 "的那个地址盖了 
 我也是新手,如果不对还请教 
------解决方案--------------------object2 =  "object2 "; 
 你已经把object2 改为了string,出现这种情况因为是string的特殊性,具体可以看看msdn关于string的描述 
------解决方案--------------------参看以下代码 
 namespace ConsoleApplication1 
 { 
     class Program 
     { 
         static void Main(string[] args) 
         { 
             TestObjectClass obcls = new TestObjectClass(); 
             obcls.Name =  "user1 "; 
             object object1 = new object(); 
             object1 = obcls;//object1指向obcls 
             object object2 = object1;//object2指向object1 
             obcls.Name =  "user2 ";//obcls改变 
             Console.WriteLine(((TestObjectClass)(object2)).Name);        
          } 
     }     
     class TestObjectClass 
     {  
         private string _name; 
         public string Name  
         { 
             get { return _name; } 
             set { _name = value; } 
         }   
     } 
 }