c# - 长度为 1 的数组是否与同一类型的单个变量大小相同?

标签 c# arrays

<分区>

想象一下,相当基本的问题

int a = 5;
int[] b = new int[1];
b[0] = 5;

ab 是否占用相同的内存空间?我假设 ba 大,因为它必须将自身的长度存储在某处,所以我认为它会比 IntPtr.Size 大,但我不确定。

我正在尝试编写代码,其中数组的长度在运行时确定,并且可以是 1 或更大 (<10)。我不知道如果长度设置为 1,我是否应该只创建一个数组,或者在代码中有一个特殊情况,并且只使用底层类型来设置长度 == 1。

我知道 a 是值类型,而 b 是引用类型。

最佳答案

不,ab 不会占用相同数量的内存。

数组容器本身就是一个对象。它将在某处存储与其包含的元素数量有关的数据。因此它将具有非零大小。

关于c# - 长度为 1 的数组是否与同一类型的单个变量大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23063436/

相关文章:

c# - 匹配两个具有不同文件名的相同图像

php - 根据数组的索引创建一个字符串

c# - 在 javascript 片段中使用 C# 列表

php - 获取数据时在数组中显示空白输入数组值 Laravel

c# - 区域特定登录页面

c# web api 无法从网络调用

c# - 无法从 Azure 网站上的 MVC4 应用程序连接到 MySQL

c# - 如何使用 SQL 查询更新表中的多行?

java - 多维 map

php - 如何在类之外显示来自数据库的数据