title: CodeContracts "Required" understanding
body: <p>I tried the following code to enable some kind of not null checking for retrieved entities to ensure they are exist before doing some concrete business:</p>
  
  <pre><code>protected T GetRequired&lt;T&gt;(object id)
      where T : EntityObject
  {
      var obj = Get&lt;T&gt;(id);
      Contract.Requires&lt;ArgumentNullException&gt;(obj != null);
      return obj;
  }
  </code></pre>
  
  <p>But in compile time I'm getting:<br>
  <code>After contract block, found use of local variable 'obj' defined in contract block</code></p>
  
  <p>Am I using <code>Contract.Requires</code> in the wrong way?</p>