【发布时间】:2022-07-22 13:18:11
【问题描述】:
我想知道如果 Copy() 和 Clone() 方法执行相同的任务,它们之间的差异以及使用哪个方法
根据我的搜索,clone() 创建一个新字符串,而 copy() 只是复制现有字符串并使用它
如果这是正确的比哪个更好
【问题讨论】:
-
真的没有充分的理由使用这两种方法,tbh。
-
string是ICloneable,实际上并没有克隆任何东西。它只是返回自己。string.Copy()毫无意义,肯定会创建一个新字符串,但你只能通过Object.ReferenceEquals来判断。 -
在 c# 中,字符串是不可变的——这意味着默认情况下您永远不会传递 refs,而是每次传递原始数据。要复制或克隆字符串,只需执行 var string1 = string2;使用复制和克隆方法只会增加混乱