【发布时间】:2020-05-21 00:16:49
【问题描述】:
考虑以下类型的对象:
public class MyObject
{
// "defining" attributes
private string member1;
private string member2;
private string member3;
// other attributes
private string member4;
private string member5;
// ctor
public MyObject(){}
public bool compare(MyObject that)
{
// compare this object with another (that)
}
compare() 方法的行为应如下所示。 它只考虑“定义”属性。如果它们在两个对象之间全部不同,它应该返回 false。如果它们全部相同,则返回 false。在其他情况下,返回 true(如果两个对象之间只有一个或两个不同)。
问题是,我必须为此诉诸一个巨大的if 声明吗?有没有“更好”的解决方案?
【问题讨论】:
-
你能不能把
definingString创建成List<string>而不是n个字符串变量。 -
@PrasadTelkikar 我不明白为什么不这样做。不过,我仍然不明白它如何使比较更容易。你能详细说明一下吗?
-
@PrasadTelkikar 我收到了多个关于这个问题的答案,但我还没有尝试过。我明天会这样做。
-
如果您有任何问题,请告诉我。
-
谢谢。感谢您的回答,看起来它会解决我的问题,但我会更新您。