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

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

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

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

我如何通过VisualStudio看到它?

您可以使用Visual Studio调试器来查看数组布局。 一个简单的例子:

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

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

在此处输入图像描述

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

您可以将WinDbg与sos或psscor扩展一起使用。