title: Share fields with derived class
body: <p>I have an abstract class in C#:</p>
  
  <pre><code>public abstract class DataSeed {
  
    private Context _context;
  
    private IReadOnlyList&lt;String&gt; _languages = new List&lt;String&gt; { "en", "fr" };
  
    private const String DRIVE = "http://mydriveurl";
  
  }
  </code></pre>
  
  <p>What would be the best way to share these 3 fields only with derived classes:</p>
  
  <pre><code>public MyDataSeed : DataSeed {
  }
  </code></pre>
  
  <p>Should I use protected, protected and turn them into properties, etc? </p>
  
  <p>Note that:</p>
  
  <ol>
  <li>DRIVE is a constant and cannot be changed;</li>
  <li>_context should be initialized in the derived class constructor and should not be initialize again after it.</li>
  <li>_languages is a list that cannot be changed.</li>
  </ol>