实现比较派生类的属性的方法的基类

时间:2013-08-12 10:38:43

标签: c# properties compare derived-class base-class

我在重复自己,并且违反了DRY。我需要的是一个实现operator ==和!=以及GetHashCode和Equals的基类。基类必须列出最顶层派生类的所有属性(通过反射?)。并在这些运算符函数中比较这些属性,或将它们的哈希码组合在GetHashCode中。

伪代码示例:

    public static Boolean operator == (KeyValue A, KeyValue B)
    {
        List<PropertiesOfKeyValueClass> Properties = Reflection.GetProperties(KeyValue);
        foreach (Property prop in Properties)
        {
            if (A.prop != B.Prop) return false;
        }
    }

我无法想象这已经没有在.Net框架中实现,但我找不到它。因此,我认为我可以先在StackOverflow上询问,而不是“发明轮子”。

0 个答案:

没有答案