如何在.net核心中执行String.Copy?

时间:2017-01-20 07:35:24

标签: c# uwp .net-core

在将.net框架应用程序移植到.net核心应用程序时,String.Copy有一些用于复制字符串的用法。但它看起来这个方法已从.net core中删除,那么你将如何在.net核心应用程序中复制一个字符串,因此它也不存在于uwp中。 .net核心中的赋值string b = a;是否意味着与.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);
    }

3 个答案:

答案 0 :(得分:6)

这不如string.Copy()那么优雅,但如果您因任何原因不想要引用相等,请考虑使用:

string copiedString = new string(stringToCopy.ToCharArray());

答案 1 :(得分:5)

分配字符串不是创建副本。 a = b只是将两个变量的引用设置为相同的内存段。 string.Copy实际上复制了字符串,因此引用不再相同。

我怀疑你是否需要string.Copy。你为什么想要另一个参考?我无法想到你想要的任何常见情况(unless you are using unmanaged code)。由于字符串是不可变的,因此您只能更改字符串的内容,因此在这种情况下复制是无用的。

根据使用string.Copy的代码进行更新,我认为使用string.Copy无效。如果仅在托管代码中使用DataDictionary,则可以执行简单分配。

答案 2 :(得分:0)

string newstring = $“ {oldstring}”;