Properties or fields in Equals and GetHashCode?
<p>I'm using a mix of <a href="http://stackoverflow.com/a/263416/47493">Jon Skeet's GetHashCode</a> and the <a href="http://msdn.microsoft.com/en-us/library/ms173147%28v=vs.80%29.aspx" rel="nofollow">MSDN Guidelines for Overloading Equals</a> to implement my Equals and GetHashCode methods. However, one thing has been bothering me.</p>

<p>Should I implement them checking against the actual fields in the class, or their properties?</p>

<p>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?</p>
