令人惊讶的是,String.Clone()
它不会像那样返回字符串的副本String.Copy()
。相反,它返回'this'
原始字符串。
我想了解 .Net Framework 团队为何选择这种方式。
根据MSDN:
ICloneable 接口 [...] 要求您的 Clone 方法实现返回当前对象实例的副本。
String.Clone()
显然不遵循此准则。
我知道字符串是不可变的,但如果不可变是这里的原因,它String.Copy()
也会返回this
,但它不会。
当然,这是一个相当理论的问题。