恐怕这是一个非常愚蠢的问题,但我肯定错过了什么.
为什么要用String.Copy(string)呢?
文件上说
使用创建字符串的新实例
因为字符串在中是不可变的.NET,我不确定使用这种方法的好处是什么,正如我所想的那样
string copy = String.Copy(otherString);
从所有的实际目的来看,似乎都会产生相同的结果
string copy = otherString;
也就是说,除了正在进行的任何内部记账,以及copy不是ReferenceEquals
与其他String的事实之外,没有明显的差异-String是一个不可变的类,它的等价性基于值,而不是基于标识.
(感谢@Andrew Hare指出,我最初的措辞不够精确,不足以表明我意识到了Copy
ing和Not之间的区别,但担心useful的差异.)
当然,当传递null
参数时,Copy抛出ArgumentNullException
,而"新实例"可能会消耗更多内存.后者似乎不是什么好处,我也不确定空判断是否是一个足够大的奖励,足以保证一个完整的复制方法.
谢谢