c# – 如何在Class中实现Clone和Copy方法?
发布时间:2020-12-15 06:29:13 所属栏目:百科 来源:网络整理
导读:我有一个叫做Employee的类,叫做ID,Name,Dept.我需要实现复制和克隆方法?当我使用Copy或Clone方法时,我需要避免Casting?我该怎么办? 例如:DataTable与DataTable.Copy()和DataTable.Clone()相同. 解决方法 您需要实现IClonable接口并提供克隆方法的实现.如
我有一个叫做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方法中把这个值赋给一个新的对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |