如何在.net核心中执行String.Copy?
在将.net框架应用程序移植到.net核心应用程序时,有一些String.Copy
用于复制字符串。 但是看起来这个方法已经从.net核心中移除了,那么你将如何在.net核心应用程序中复制一个字符串,结果,它也不存在于uwp中。 赋值string b = a;
在.net核心中意味着与.netframework不同的东西?
该副本用于此代码:
public DataDictionary(DataDictionary src) :this() { this.Messages = src.Messages; this.FieldsByName = src.FieldsByName; this.FieldsByTag = src.FieldsByTag; if (null != src.MajorVersion) this.MajorVersion = string.Copy(src.MajorVersion); if (null != src.MinorVersion) this.MinorVersion = string.Copy(src.MinorVersion); if (null != src.Version) this.Version = string.Copy(src.Version); }
字符串的赋值不是创建副本。 a = b
只是将两个变量的引用设置为相同的内存段。 string.Copy
实际上复制了字符串,因此引用不再相同。
我怀疑你是否需要string.Copy
。 你为什么想要另一个参考? 我想不出你想要的任何常见情况( 除非你使用非托管代码 )。 由于字符串是不可变的,因此您不能只更改字符串的内容,因此在这种情况下复制是无用的。
鉴于使用string.Copy
的代码进行更新,我会说使用string.Copy
是string.Copy
。 如果仅在托管代码中使用DataDictionary
,则可以执行简单的分配。
这不像string.Copy()
那么优雅,但如果你因为某种原因不想要引用相等,可以考虑使用:
string copiedString = new string(stringToCopy.ToCharArray());