C# wpf 深度拷贝 API示例
时间: 2024-12-22 21:28:44 浏览: 5
在C#中,WPF(Windows Presentation Foundation)主要是用于创建用户界面的应用程序框架,而深度复制通常涉及到数据结构或复杂类型的深层次复制,以防止原对象和新对象之间的引用泄露。对于.NET Framework,可以借助`System.Runtime.Serialization.Json`或者第三方库如Json.NET来进行序列化和反序列化,从而达到类似深度拷贝的效果。
以下是一个使用`JsonConvert.DeserializeObject<T>()`进行深拷贝的简单示例:
```csharp
using Newtonsoft.Json;
// 假设我们有一个自定义类
public class MyClass
{
public int Value { get; set; }
public List<MyNestedClass> NestedList { get; set; }
}
// 子类
public class MyNestedClass
{
public string Name { get; set; }
}
// 源对象
MyClass original = new MyClass
{
Value = 10,
NestedList = new List<MyNestedClass>
{
new MyNestedClass { Name = "Original" },
}
};
// 使用JsonConvert进行深度克隆
string json = JsonConvert.SerializeObject(original);
MyClass copiedObject = JsonConvert.DeserializeObject<MyClass>(json);
// 现在copiedObject是original的一个完全独立的副本
// 虽然它们引用的是相同的列表内容,但实际上是两个不同的实例
```
阅读全文