在C# 中,测试复杂数据结构的相等可能非常棘手。如果我们构造一个新的对象,具有相同的属性,使用== 运算符比较两个对象,其结果很可能是false,因为我们比较的是两个不同的实例。
在C# 中,== 运算符可以被重载,Object.Equals 可以重写,但通常只用于值类型或不可变数据结构。比较可变类型的两个不同实例时,识别两者之间的不同,是很重要的,因为数据可以在以后被改变;相反,如果是两个不可变类型,存储相同的值,我们就可以认为它们相等,因为数据在将来不会改变,所以,两个对象总是相等的。
时间: 2024-10-19 14:58:34