gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:17 24 4
gpt4 key购买 nike

我在 C# 中有 2 个相同类的对象。

Myclass obj1 = new Myclass();
Myclass obj2 = null;
obj2 = obj1;
obj1.Name = "abc"; //"abc" will also assign to obj2.Name.

当我分配 obj1.Name="abc" 时,它也会分配给 obj2.Name。我想阻止这一切。我试过 const, sealed 但我没有得到结果。谁能建议我如何停止在 obj2 上引用 obj1

最佳答案

你想要深度克隆obj1:

Myclass obj1 = new Myclass();
Myclass obj2 = DeepClone(obj1);
obj1.Name = "abc";

深度克隆对象的一种方法是对其进行序列化并反序列化。

这是一个使用 json.net 的例子:

public T DeepClone<T>(T instance)
{
return JsonConvert.DeserializeObject<T>(JsonConvert.SerializeObject(instance));
}

关于c# - 如何停止引用其他类对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31603679/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com