值类型和引用类型的区别

       在dotnet中有两大类数据类型,即值类型和引用类型,值类型存贮在栈中,而引用类型存贮在动态的堆中,栈是先进先出的有系统管理的空间,而堆是由应用程序控制的可随时申请和释放该空间,在Donnet中一般情况下有垃圾收集器处理,他们的不同导致在编程上的不同。
        例:                     StringBuilder a=new StringBuilder();//将StringBuilder的一个首地址传给a
                                     StringBuilder b=a;//将StringBuilder的一个首地址传给b
                                      b.Append("mxh");
                                      Console.WriteLine(a);
                                       a=null;
                                       Console.WriteLine(b);
               输出结果:mxh
                                   mxh
       "a=null"的意思是:a的引用置为空但此时StringBuilder的堆空间并没有被释放,因此在此之后,输出b时,仍然可以输出mxh
posted @ 2005-08-30 09:02  kuailewangzi1212  阅读(2235)  评论(0编辑  收藏  举报