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();
结果: