鉴于以下情况:字节[]数据;和一个声明为的函数私有字节 [] 构造命令()
如果我要分配的结果构造命令() to sDatasData 是否只是指向从函数返回的内容,或者是否会在内存中为 sData 分配一些空间,并将函数结果的内容复制到其中?
该赋值将简单地分配 sData 来引用 construct_command 返回的实例。不会发生数据复制。
一般来说,CLR 将世界分为两种类型
- 值类型:这是从 System.ValueType 派生的任何类型。这些类型的值之间的分配按值进行,本质上会导致位置之间的值的副本
- 参考类型:任何其他。这些类型的值之间的赋值只会导致该位置引用内存中的不同对象。不会发生值的复制
数组是 CLR 中的引用类型,因此不会导致基础值的复制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)