如何看待C#数组如何在内存中放置?

use*_*081 6 c# arrays multidimensional-array

我想看看C#数组是如何放在计算机内存中的.

我想看到的主要是两列,其中地址第二,数组元素.可能吗?

我想从1D数组开始,但后来我想观察多维数组是如何奠定的.

题

我怎样才能通过VisualStudio看到它?

Han*_*ant 14

您可以使用Visual Studio调试器查看阵列布局.一个简单的例子:

    static void Main(string[] args) {
        int[] arr = { 1, 2, 3 };
        Console.ReadLine();  // Breakpoint here
    }
Run Code Online (Sandbox Code Playgroud)

使用Project + Properties,Build选项卡,Platform target = x86.在指示的行上设置断点,按F5,当它命中时使用Debug + Windows + Memory + Memory 1.键入arr地址框.右键单击窗口并选择"4字节整数".看起来像这样:

在此输入图像描述

第一个词是"类型句柄",它的值是随机的,只是忽略它.你可以毫无疑问地猜测其余部分,你会看到数组长度和数组元素.

  • 嗯,当你不知道它是如何实现的时候,这是一个"实现细节".数组元素始终按顺序存储. (2认同)