可以使用浅拷贝或深拷贝的方式。
public class MyClass : ICloneable
{
public int MyProperty { get; set; }
public object Clone()
{
return this.MemberwiseClone();
}
}
// 使用示例
MyClass original = new MyClass();
original.MyProperty = 10;
MyClass clone = (MyClass)original.Clone();
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
public class MyClass
{
public int MyProperty { get; set; }
public MyClass DeepCopy()
{
using (MemoryStream stream = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, this);
stream.Seek(0, SeekOrigin.Begin);
return (MyClass)formatter.Deserialize(stream);
}
}
}
// 使用示例
MyClass original = new MyClass();
original.MyProperty = 10;
MyClass clone = original.DeepCopy();
以上是在C#中克隆一个对象的两种常见方式。具体选择哪种方式取决于你的需求和对象的结构。
领取专属 10元无门槛券
手把手带您无忧上云