title: When should I use a struct rather than a class in C#?
body: <p>When should you use struct and not class in C#? My conceptual model is that structs are used in times when the item is <em>merely a collection of value types</em>.  A way to logically hold them all together into a cohesive whole.</p>
  
  <p>I came across these rules <a href="https://web.archive.org/web/20110829190107/http://www.johnnycantcode.com/Post/C_Classes_vs._Structs" rel="noreferrer" title="Archived from the original site: www.johnnycantcode.com/Post/C_Classes_vs._Structs">here</a>:</p>
  
  <ul>
  <li>A struct should represent a single
  value.</li>
  <li>A struct should have a memory
  footprint less than 16 bytes.</li>
  <li>A struct should not be changed after
  creation.</li>
  </ul>
  
  <p>Do these rules work? What does a struct mean semantically? </p>