C# 对象数组是否存储所述对象的指针?

标签 c# arrays pointers

肯定有这样的问题,但我找不到它——也许我措辞有误。我的所有搜索都导致了有关如何在 C# 中使用数组的文章。

一点背景知识:我正在尝试将许多对象加载到一个数组中。我想知道数组是否会由于指针过多或数组中累积对象的大小而导致 OutOfMemory 异常。我知道对象在 .NET 中有一个固有的 2 GB 大小限制,但它是否源于数组中的对象本身?

例如,如果我在数组中有 n 个对象,那么数组的内存大小是 n * sizeof(object) 还是 n * sizeof(pointer)?

最佳答案

如果对象是值类型,那么它将实际对象存储在数组中,数组的大小是 n * 对象的大小。如果类型是引用类型,则数组存储对其他地方对象的引用,并且数组的大小是 n * 指针的大小。

关于C# 对象数组是否存储所述对象的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31250097/

相关文章:

c# - 用于降低 Visual Studio C# 中的接口(interface)编程摩擦的工具?

c# - “委托(delegate) 'System.Action' 不接受 0 个参数。”这是 C# 编译器错误(lambdas + 两个项目)吗?

c - 将字符串分配给指针时,它是否保留空间内存

c++ - FORTRAN 函数返回数组导致段错误(从 C++ 调用)

c++ - C++ 中的 BST 插入

c# - 无法使用服务帐户在谷歌驱动器上上传图片

c# - gridview 滚动到顶部

python - 如何及时选择非常大的向量的一小部分?

arrays - 更快地大范围修改(TextToDisplay)超链接的方法

arrays - Excel VBA : populating cells with array values is very slow