肯定有这样的问题,但我找不到它——也许我措辞有误。我的所有搜索都导致了有关如何在 C# 中使用数组的文章。
一点背景知识:我正在尝试将许多对象加载到一个数组中。我想知道数组是否会由于指针过多或数组中累积对象的大小而导致 OutOfMemory 异常。我知道对象在 .NET 中有一个固有的 2 GB 大小限制,但它是否源于数组中的对象本身?
例如,如果我在数组中有 n 个对象,那么数组的内存大小是 n * sizeof(object) 还是 n * sizeof(pointer)?
最佳答案
如果对象是值类型,那么它将实际对象存储在数组中,数组的大小是 n * 对象的大小。如果类型是引用类型,则数组存储对其他地方对象的引用,并且数组的大小是 n * 指针的大小。
关于C# 对象数组是否存储所述对象的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31250097/