日期:2014-05-18  浏览次数:20695 次

问下 C# 中的 new 有什么用?


using   System;
class   Test
{
        static   void   Main()
        {
                {
                        int[]   arr1   =   new   int[]   {   1,   2,   3   };
                        int[]   arr2   ={4,5,6};
                }

                Console.Write(arr1[1]);//wrong
                Console.Write(arr2[1]);//wrong
        }
}


new   的   东西,在堆分配内存,出作用域又没释放,为什么   Console.Write(arr1[1]);//wrong

------解决方案--------------------
new(创建)对象后,对象只能在作用域中有效使用,出作用域后会被标识为不可用,待托管环境的垃圾回收器来自动回收,以释放内存空间
------解决方案--------------------
托管
------解决方案--------------------
出了作用域就不能用了 是垃圾回收有屁关系
------解决方案--------------------
只能在作用域中有效使用的标志!
------解决方案--------------------
C# new 在堆中分配 似乎不是吧!!
C++ new 才是在堆中分配

------解决方案--------------------
就是实例化对象的意思,实例化一个新的对象,但是也可以隐藏基类方法等!
------解决方案--------------------
创建一个对象,C#是代码托管的,属于代码托管的对象不需要自己释放。
------解决方案--------------------
new(创建)对象,就是实例一个对象.
你定义的对象是有作用域的.
NEW最后是由托管环境的垃圾回收器来自动回收处理.