title: Moq SetupGet errors but setting property on .Object works fine
body: <p>I'm trying to define a return value for a Mock (model).</p>
  
  <p>Can anyone explain to me why the following code fails with a "Invalid setup on a non-overridable member":</p>
  
  <pre><code>model.SetupGet(x =&gt; x.PostCodeSearch).Returns(It.IsAny&lt;string&gt;);
  </code></pre>
  
  <p>and yet I can do this and it works fine:</p>
  
  <pre><code>model.Object.PostCodeSearch = "Any value as long as it's not null or empty";
  </code></pre>
  
  <p>The error message is clear enough but it seems strange that I can then apply values to properties directly on the Object property.  What's the point of SetUpGet if I can do the latter?</p>