3

String.Clone()MSDN

返回值不是这个实例的独立副本;它只是相同数据的另一种视图。使用 Copy 或 CopyTo 方法创建一个与此实例具有相同值的单独 String 对象。

因为 Clone 方法只是返回现有的字符串实例, 所以没有理由直接调用它

据我了解,String 是一种引用类型,这意味着您在调用字符串时只会获得对字符串对象的引用。

因此为什么 String.Clone() 存在?它的目的是什么?

4

2 回答 2

2

这很有用,因为字符串实现了 ICloneable,因此您可以为 ICloneable 项的集合创建克隆副本。当集合仅包含字符串时,这很无聊,但当集合包含多个实现 ICloneable 的类型时,它很有用。至于复制单个字符串,它没有用,因为它通过设计返回对自身的引用。

参考:string.Clone() 有什么用?

Clone() 方法返回对正在克隆的字符串的引用。它不是Heap上字符串的独立副本。这是对同一字符串的另一个引用。

并阅读这篇文章:用例子解释克隆

于 2013-10-07T09:31:01.077 回答
1

也许只是为了实现ICloneable接口。请参阅ICloneable.Clone 方法

此外,ICloneable界面似乎已经过时:

于 2013-10-07T09:28:21.673 回答