gpt4 book ai didi

c# - 在 C# 中覆盖具有许多属性的类的等于

转载 作者:太空狗 更新时间:2023-10-29 22:54:26 24 4
gpt4 key购买 nike

我有许多数据类具有超过 25 个不同值类型的属性(这在未来可能会随着需求的变化而改变)。我想重写 equals,主要是为了单元测试目的。

目前,我知道如何做到这一点的唯一方法是实际测试每个硬编码属性的相等性。这看起来很糟糕,原因有二——首先,我将不得不编写大量代码来测试 25 个属性的相等性——其次,如果稍后及时添加其中一个类中的属性,Equals 方法将不会检查这很可能会被忽视并导致 future 出现问题。

由于 Equals 通常检查类的属性,因此应该有一种方法可以动态比较被比较的类的属性,从而确保对类的属性更改不会导致 Equals 的错误实现。有办法做到这一点吗?

最佳答案

你可以使用反射来写这样的东西——但这会很慢。我会坚持压倒一切平等,但想想你真正需要平等的哪一部分。我通常只检查不可变部分(如 Id)是否相等,而忽略可变字段,我认为这是一个很好的做法。

关于c# - 在 C# 中覆盖具有许多属性的类的等于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7244802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com