C# 日常方法
只是想把自己一些遇到的东西记录下来;
在平时开发中经常需要对对象进行克隆,之前自己傻傻的声明个方法返回新实例并将对象本省的属性都复制给新实例,这样每有一个属性就要一个赋值语句;
其实object本身就提供一个方法进行对象的浅表克隆;MemberwiseClone(),一般程序中大多数属性都是值类型或者string类型,所以该方法就满足了我的需求如果改类中有声明引用类型只要在自己的方法中再次调用该对象的方法就好;
public class TestCopy { public string Name { get; set; } public TestCopy Child { get; set; } public TestCopy GetdeeplyCopy() { TestCopy tc = (TestCopy)this.MemberwiseClone(); if (tc.Child != null) { tc.Child = tc.Child.ShallowCopy(); } return tc; }
}
这样获取的就不在是浅表克隆了!
还有一种克隆对象的方式就是讲对象序列化在反序列化回来;