我想知道如果 Copy() 和 Clone() 方法执行相同的任务,它们之间有什么区别以及使用哪一个
根据我搜索到的内容,clone() 会创建一个新字符串,而 copy() 只是复制现有字符串并使用它
如果这是正确的,那么哪个更好
不要使用这两种方法:
Clone 实际上并没有做任何事情。Copy已正式过时。我将在回答前说,因为值是不可变的,所以使用 或并String没有太多(或任何?)好的理由。String.Clone()String.Copy
根据我搜索到的内容,创建
clone()一个新字符串,然后copy()复制现有字符串并使用它
抱歉,您的理解不正确。
根据文档(重点是我的):
String.Clone() 不会创建字符串的副本,实际上它只是返回一个自引用:
https://learn.microsoft.com/en-us/dotnet/api/system.string.clone?view=net-6.0
返回值不是该实例的独立副本;这只是相同数据的另一种视图。使用
CopyorCopyTo方法创建一个与此实例具有相同值的单独 String 对象。因为该
Clone方法只是返回现有的字符串实例,所以没有理由直接调用它。
至于String.Copy():
https://learn.microsoft.com/en-us/dotnet/api/system.string.copy?view=net-6.0
该
Copy方法返回一个String与原始字符串具有相同值但表示不同对象引用的对象。[...]
从 .NET Core 3.0 开始,此方法已过时。但是,我们不建议在任何 .NET 实现中使用它。特别是,由于 .NET Core 3.0 中字符串驻留的更改,在某些情况下,Copy 方法不会创建新字符串,而只是返回对现有驻留字符串的引用。
此外,因为String.Copy 可能会创建一个副本(取决于实习的工作方式),这意味着它是一个O(n)操作。
| 归档时间: |
|
| 查看次数: |
550 次 |
| 最近记录: |