我有 2 个与 C# 中的类相同的对象。
Myclass obj1 = new Myclass();
Myclass obj2 = null;
obj2 = obj1;
obj1.Name = "abc"; //"abc" will also assign to obj2.Name.
Run Code Online (Sandbox Code Playgroud)
当我分配时obj1.Name="abc",它也会分配给obj2.Name. 我想阻止这一切。我已经尝试过 const, seal 但没有得到结果。有人能建议我如何停止对obj1on的引用obj2吗?
你想要深度克隆obj1:
Myclass obj1 = new Myclass();
Myclass obj2 = DeepClone(obj1);
obj1.Name = "abc";
Run Code Online (Sandbox Code Playgroud)
深度克隆对象的一种方法是将其序列化并反序列化回来。
这是使用 json.net 的示例:
public T DeepClone<T>(T instance)
{
return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(instance));
}
Run Code Online (Sandbox Code Playgroud)