String.Clone()是什么?它的作用是什么?

3

来自MSDN上的String.Clone():

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

由于Clone方法仅返回现有字符串实例,因此几乎没有直接调用它的理由

我认为String是一个引用类型,这意味着当调用字符串时,您将始终获得对字符串对象的引用。

那么为什么会存在String.Clone()?它的目的是什么?


你是对的,string 是一个引用类型,但它也是不可变的,所以它的行为有点不同于其他引用类型。然而,这并不改变 Clone 方法并不是真正有用的事实。 - MarcinJuraszek
因为 string.SubString(0) 不会返回一个副本,而是传递给它的同一引用,这是不直观的。 - leppie
2个回答

2

这很有用,因为字符串实现了ICloneable接口,所以您可以创建一个ICloneable项集合的副本。当集合仅包含字符串时,这可能会变得乏味,但是当集合包含多个实现ICloneable接口的类型时,它就非常有用了。

参考:what's the use of string.Clone()?

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

并阅读此文章:Explanation for Clone with examples


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接