C# C语言中的深层克隆类和子类#

C# C语言中的深层克隆类和子类#,c#,class,clone,C#,Class,Clone,我最近发现,MemberwiseCloning类似乎并没有克隆它的子类(在其中定义的类)。它们似乎仍然被视为指针。有什么方法可以克隆一个包含所有子类的整个类吗 使用类似的方法 public object Clone() { using (var memStream = new MemoryStream()) { var binaryFormatter = new BinaryFormatter( null, new S

我最近发现,MemberwiseCloning类似乎并没有克隆它的子类(在其中定义的类)。它们似乎仍然被视为指针。有什么方法可以克隆一个包含所有子类的整个类吗

使用类似的方法

public object Clone()
{
    using (var memStream = new MemoryStream())
    {
        var binaryFormatter = new BinaryFormatter(
           null, 
           new StreamingContext(StreamingContextStates.Clone));
        binaryFormatter.Serialize(memStream, this);
        memStream.Seek(0, SeekOrigin.Begin);
        return binaryFormatter.Deserialize(memStream);
    }
}

“有什么方法可以克隆一个包含所有子类的整个类吗?”-有。编写一个克隆方法。搜索internet以查找使用序列化的短代码段。也许可以试着在serach引擎中输入你的标题?每个答案旁边都有一个全息勾选框,勾选它会给你几分,让他们知道你的问题已经解决,从而节省了每个人的时间。祝你好运:)表演怎么样?!我们应该使用这个技巧还是为每个子类定义函数ICloeable.Clone(),以获得性能?@K4timini:如果需要深度克隆,我认为这是性能最好的方法。