假设我有一个班级MyClass
。然后我有这个类的实例,如:
MyClass myobject = ...
然后我想做两件事:
对此最简单的解决方案是什么?我搜索过互联网并找到了许多解决方案,但没有一个像我预期的那么简单。
答案 0 :(得分:1)
在班级中实施IEquatable(t)。您可以在Equals()方法中实现自己的比较逻辑。
您可能还想查看ICloneable。
答案 1 :(得分:0)
将实例复制到另一个对象。
我假设不只是处理对象引用而是处理内容。为此,您必须在IClonable
类中实现MyClass
接口。
比较两个实例以检查它们是否相同(等于)。
您必须在IEquatable
课程中实施Myclass
界面。
答案 2 :(得分:0)
正如其他人指出的那样,进行相等比较,实现IEquatable或者只是覆盖Equals()和GetHashCode()方法。
克隆(复制)在像C#这样的内存管理语言中不是一个小问题,因为你不能只复制内存。实施IClonable是一种可能性,但从客户的角度来看,无论是深度克隆还是浅层克隆,都会产生混淆。
根据我的经验,实现克隆的最简单方法之一是创建一个可序列化类,并简单地序列化和反序列化它。当然,你也可以获得一个Serializable对象的其他好处。