title: Get instance of child class
body: <p>I have a base abstract class "BaseEngine" and a child class "Engine : BaseEngine".</p>
  
  <p>The Engine has a public property of type Engine called "Instance":</p>
  
  <pre><code>public Engine Instance
  { get; set; }
  </code></pre>
  
  <p>I want to get this Instance from the BaseEngine. I already tried this:</p>
  
  <pre><code>public abstract BaseEngine&lt;T&gt; where T : class
  {
      public T Instance { get; set; }
  }
  </code></pre>
  
  <p>and </p>
  
  <pre><code>public Engine : BaseEngine&lt;Engine&gt;
  </code></pre>
  
  <p>but it creates recursion.</p>
  
  <p>Do you have any suggestions?
  Thank you!</p>
  
  <p>UPDATE</p>
  
  <p>I have lots of classes derived from BaseEngine class. Each child class have methods which do practically the same thing. I was trying to move those methods to the base class to change less code in case of a changing. I will try to find another way to do this, because what I asked cannot be done. Thank you for your replies.</p>