在Java中,空字符串是40个字节.在Python中它是20个字节.C#中的空字符串对象有多大?我做不到sizeof,我不知道怎么回事.谢谢.
CLR版本很重要.在.NET 4之前,字符串对象有一个额外的4字节字段,用于存储"capacity",m_arrayLength字段.该字段在.NET 4中不再存在.它具有标准对象头,同步块为4个字节,方法表指针为4个字节.然后是4个字节来存储字符串长度(m_stringLength),后面跟着字符串中每个字符的2个字节.并使用0 char使其与本机代码兼容.对象总是4个字节长的倍数,最小16个字节.
因此,空字符串是4 + 4 + 4 + 2 = 14字节,在.NET 4.0上四舍五入为16字节.早期版本的20个字节.给定的值是x86.这在调试器中非常明显,请查看此答案以获取提示.
| 归档时间: |
|
| 查看次数: |
1945 次 |
| 最近记录: |