将一个对象附值给一个变量 比如
将一个DataGrid  对象DataGrid1付给一个DataGrid变量 m
对变量m做一些修改 DataGrid1也修改了吗?
比如对m添加了一些事件处理方法

解决方案 »

  1.   

    例如 int a = 111;
         int b = a;
    那么对b所作的更改不会影响a,因为重新分配了内存
    --------------相反地,又如 DataTable dt1 = new DataTable();
                DataTable dt2 = dt1;
    那么对dt2所作的更改直接就影响到dt1 --- 而实际上,它们是同一个对象,使用同一片内存
      

  2.   

    谢谢 Eddie005(♂) №.零零伍 (♂)
    怎么判断值类型和引用类型吗 ?
      

  3.   

    Eddie005(♂) №.零零伍 (♂):在new实例化对象,是创建个引用类型吧?
      

  4.   

    new实例化对象, 就是给对象分配新的内存空间了。改变这个对象,不影响给他赋值给他的对象。
    如果不new直接赋值,就是引用另一个对象,即这2个对象的内存空间是一样的。改变一个,当然改变另外一个了。
      

  5.   

    Anders_lt(突破渴望) ( ) 信誉:98    Blog  2006-09-13 11:45:00  得分: 0  
     
    谢谢 Eddie005(♂) №.零零伍 (♂)
    怎么判断值类型和引用类型吗 ?
    ____________________________________基本上这样就可以判断是值类型还是引用类型:
    int a1 = 10;
    StringBuilder strb1 = new StringBuilder("ABC");int a2 = a1;
    StringBuilder strb2 = strb1;bool bl1 = object.ReferenceEquals(a1,a2);   //false为值类型(因为值类型要装箱)
    bool bl2 = object.ReferenceEquals(strb1,strb2);   //true为引用类型
    另,我自己写的一篇文章:
    http://blog.csdn.net/www_123du_com/archive/2006/08/26/1123676.aspx