我有一个叫做Employee的类,叫做ID,Name,Dept.我需要实现复制和克隆方法?当我使用copy或Clone方法时,我需要避免Casting?我该怎么办?
例如:DataTable与DataTable.copy()和DataTable.Clone()相同.
解决方法
您需要实现IClonable接口并提供克隆方法的实现.如果您想避免投射,请勿实施.
一个简单的深克隆方法可以将对象序列化到内存中,然后反序列化它.您的类中使用的所有自定义数据类型都需要使用[Serializable]属性进行串行化.对于克隆,您可以使用类似的东西
public MyClass Clone() { MemoryStream ms = new MemoryStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ms,this); ms.Position = 0; object obj = bf.Deserialize(ms); ms.Close(); return obj as MyClass; }
如果你的班级只有value types,那么你可以使用一个copy constructor,或者只是在Clone方法中把这个值赋给一个新的对象.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。