yzx99

导航

 

C#包含两种类型:数据类型与引用类型,它们的重要区别在于:前者直接包含实际数据,后者只是存储对对象的引用。因此,引用类型有可能

多个变量引用同一个对象。以下代码体现出这种区别:
using System;
class test
{
 public int i=0;
}
class hello
{
 static void Main()
 {
  int i1=15;
  int i2=i1;
  i2=12;

  test t1=new test();
  test t2=t1;
  t2.i=12;

  Console.WriteLine("i1   i2   : {0}, {1}", i1, i2);
  Console.WriteLine("t1.i t2.i : {0}, {1}", t1.i, t2.i);
 }
}
执行结果:
i1   i2   : 15, 12
t1.i t2.i : 12, 12

 

实际中我还遇到过:我把一个列表对象赋给列表项,然后没有new,直接修改列表对象,再赋给新的列表项,这时两个列表项的内容却成了一样的了。

因为列表项也是对象,对象赋给对象,只是地址的拷贝而已,所以没有new的话,两个列表项都指向同一个地址。理解。

posted on 2008-09-05 06:12  yzx99  阅读(151)  评论(0编辑  收藏  举报