给定一个类的两个实例,通过首先对它们进行序列化然后比较字节数组(或者可能是数组的哈希值)来比较它们是一种好的和可靠的做法.这些对象可能具有复杂的层次结构属性,但序列化应尽可能深入.
相比之下,我指的是确保原始类型的所有属性具有相等值的过程,复杂类型的属性具有相等的原始类型属性等.至于集合属性,它们应该彼此相等:相等的元素,相同的位置:
{'a','b','c'} != {'a','c','b'}
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
!=
{new Customer{Id=3, Name="def"}, new Customer {Id=2, Name="abc"}}
Run Code Online (Sandbox Code Playgroud)
但
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
==
{new Customer{Id=2, Name="abc"}, new Customer {Id=3, Name="def"}}
Run Code Online (Sandbox Code Playgroud)
通过序列化我的意思是标准的.NET二进制格式化程序.
谢谢.