title: Use of System.Diagnostics.Contract in Release builds
body: <p>I previously saw a thread on StackOverflow that had some discussion on this, however I am unable to find it again!</p>
  
  <p>I am interested to know if the System.Diagnostics.Contract classes should be used in 'real code', ie a release build of production code? I ask this, because based on the namespace description it appears the Contract is intended to debugging, or analysis purposes.</p>
  
  <p>It seems like a useful library where pre/post conditions for functionality is important, and may avoid some of the effort in writing lots of if/then/else checks, so if this is the case, is there an alternative in the core libraries?</p>