ICloneable 接口包含一个成员 Clone,它用于支持除 MemberwiseClone 所提供的克隆之外的克隆。
实现接口:
Code public class AddressInfo : ICloneable { public AddressInfo(string userName, string phone) { this.UserName = userName; this.Phone = phone; } public string UserName { get; set; } public string Phone { get; set; } public override string ToString() { return string.Format("姓名:{0},电话:{1}", this.UserName, this.Phone); } public object Clone() { AddressInfo addressInfo = new AddressInfo(this.UserName, this.Phone); return addressInfo; } }
调用接口:
Code AddressInfo ad1 = new AddressInfo("小李", "123456789"); AddressInfo ad2 = ad1; AddressInfo ad3 = ad1.Clone() as AddressInfo; ad2.UserName = "小李的相等"; ad3.UserName = "小李的克隆"; Console.WriteLine( ad1.ToString()); Console.WriteLine(ad2.ToString()); Console.WriteLine(ad3.ToString()); Console.Read();
结果: