当我们在c#中重新分配数组时,是否会破坏数组的值?

jim*_*mmy 5 c# arrays memory-management

我在c#中使用Visual Studio中的项目,但我不知道的一件事是,当我们重新分配一个数组(无论它是什么类型)时,存储在数组中的先前值是否被销毁或者他们不是?例如:

int[] a=new int[2];
a[0]=200;
a[1]=400;
Run Code Online (Sandbox Code Playgroud)

现在我用4个元素重新分配了数组'a':

a=new int[4];
Run Code Online (Sandbox Code Playgroud)

现在,先前的值是否会存在或者它们会更改为新的值,我的意思是垃圾,零或者它们会像现在一样?我也在视觉工作室自己尝试过,价值没有改变,但我想确定他们是否真的没有.

Rom*_*och 4

这样做:

a = new int[4];
Run Code Online (Sandbox Code Playgroud)

您设置a为指向另一个内存区域中的另一个数组。

如果没有其他对旧数组的引用,它将保留在内存中,直到下一次垃圾收集将其清除。