title: Refactoring method parameter validation code to Contracts - inversion of statements problem
body: <p>Old validation code is usually checking a boolean condition, and throws an exception if that is true.</p>
  
  <p>Instead <code>Contract.Requires(...)</code> does the opposite (to pass the check we need to negate old condition). </p>
  
  <p>I am refatoring old code and sometimes see some fairly advanced boolean statements, inversing them isn't that easy, and just doing <code>Contract.Requires(!(*old statements*))</code> appears bad and very confusing.</p>
  
  <p>If it had something like <code>Contract.RequiresNot()</code> refactoring would be much more clear and straightforward here.</p>
  
  <p>We also cannot add a static extension method. If someone encountered this problem and found some good solution I would like to hear it.</p>