dan*_*ine 18 .net c# shallow-copy
字符串被认为是引用类型,但可以像值一样.当浅层手动或使用MemberwiseClone()复制某些内容时,如何处理字符串?它们是否被分开并与副本和主人隔离?
stu*_*ith 46
字符串是引用类型.但是它们是不可变的(它们不能被更改),因此如果它们按值复制或通过引用复制它们并不重要.
如果它们被浅层复制,那么将复制引用...但是您无法更改它们,因此您不能同时影响两个对象.
Jon*_*eet 26
考虑一下:
public class Person
{
string name;
// Other stuff
}
Run Code Online (Sandbox Code Playgroud)
如果你调用MemberwiseClone,你最终会得到两个单独的Person实例,但是它们的name变量虽然不同,但它们具有相同的值 - 它们将引用相同的字符串实例.这是因为它是一个浅层克隆.
如果你在其中一个实例中更改了名称,那么这不会影响另一个实例,因为这两个变量本身是分开的 - 你只是改变其中一个变量的值来引用另一个字符串.
| 归档时间: |
|
| 查看次数: |
7142 次 |
| 最近记录: |