title: How to fix inherited member hiding warning when dealing with virtual properties
body: <p>I have the following base class:</p>
  
  <pre><code>public class OAuthRefreshToken {
  
       //Other properties..
  
       public int UserId { get; set; }
       public virtual OAuthUser User { get; set; }
  
  }
  </code></pre>
  
  <p>And this derived class:</p>
  
  <pre><code>public abstract class OAuthRefreshToken&lt;U&gt; : OAuthRefreshToken 
           where U : OAuthUser {
  
       public virtual U User { get; set; }
  }
  </code></pre>
  
  <p>What I want is to override the <code>User</code> property from the <code>OAuthRefreshToken</code> base class with the one in my derived class.</p>
  
  <p>I thought of adding the <code>override</code> keyword:</p>
  
  <pre><code>public override virtual U User { get; set; }
  </code></pre>
  
  <p>But this throws a compilation error as it is not allowed.</p>
  
  <p>If I leave the code like that (without override) a <strong>warning</strong> appears saying I'm hiding inherited member (which I intend to do).</p>
  
  <p>It tells me to use <code>override</code> if hiding is intended...</p>
  
  <p>And then we are on a nice loop where the warning tells you do something and the compiler tells you not to do it.</p>
  
  <p>Of course, I'll listen to the compiler, but how can I fix the warning? I don't like building my project and have a nice bunch of warnings appear.</p>
  
  <p>Thank you for your time.</p>