如何停止引用其他类对象?

NJ *_*ali 5 c#

我有 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吗?

Ami*_*ich 4

你想要深度克隆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)