令人惊讶的是,String.Clone()
并不像String.Copy()
一样返回字符串的副本。相反,它返回'this'
,也就是原始字符串。
我想了解为什么 .Net Framework 团队选择了这种方式。
根据 MSDN 的说法:
ICloneable 接口 [...] 要求你实现的 Clone 方法返回当前对象实例的副本。
String.Clone()
明显没有遵循这个指导方针。
我知道字符串是不可变的,但如果不变性是这里的原因,String.Copy()
也会返回 this
,但它并没有。
当然,这是一个比较理论的问题。
ICloneable
?”,可以将此问题轻松转化为一个实际问题。 - user743382ICloneable
的原因是什么? - Servy