I'm using a mix of Jon Skeet's GetHashCode and the MSDN Guidelines for Overloading Equals to implement my Equals and GetHashCode methods. However, one thing has been bothering me.
Should I implement them checking against the actual fields in the class, or their properties?
Furthermore, what about a parent class's properties with fields that are private (thus I can't access them) - should I be checking those as well, and then should I check them via their properties?