title: Overriding Equals method in Structs
body: <p>I've looked for overriding guidelines for structs, but all I can find is for classes.</p>
  
  <p>At first I thought I wouldn't have to check to see if the passed object was null, as structs are value types and can't be null. But now that I come to think of it, as equals signature is</p>
  
  <pre><code>public bool Equals(object obj)
  </code></pre>
  
  <p>it seems there is nothing preventing the user of my struct to be trying to compare it with an arbitrary reference type.</p>
  
  <p>My second point concerns the casting I (think I) have to make before I compare my private fields in my struct. How am I supposed to cast the object to my struct's type? C#'s <code>as</code> keyword seems only suitable for reference types.</p>