问下 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最后是由托管环境的垃圾回收器来自动回收处理.