title: How can I access members of a private abstract to class for read-only purposes in a public class?
body: <p>I have a private abstract class called TDSeq in which there are some abstract members and non-abstract members. There are 2 derived classes which it gets data from:- private class TDSeqBuy: TDSeq and private class TDSeqSell: TDSeq.</p>
  
  <p>The members from the private abstract class that I am trying to access are private/public bools/doubles/integers.</p>
  
  <p>The data flows from the derived classes through to the private abstract class by protected abstract  name {get;}. After which the data is "moved" to the above mentioned private/public bool/doubles/integers.</p>
  
  <p>I would like to access data for read-only purposes from the abstract class to a public class but do not know how to do that. Could someone please help?</p>
  
  <pre><code>private abstract class TDSeq
  {
      public event SetupCompletedEventHandler SetupCompleted;
  
      protected abstract double TDSTHigh { get; }
      protected abstract double TDSTLow { get; }
      protected abstract double SetupStopLevel { get; }
      public double highesthigh = 0;
      public double lowestlow = 0;
      public double truerange = 0;
      public double setupstoplevel = 0;
  
      // ...
  
      case TDSTStateSetup.Completed:
          if( ValidSetup )
          {
              Print = "ValidExtSetup";
              setupCount++;
              SetupDrawText();
              //Print = NameIndex;
          }
          else
          {
              Print = "ExtSetup Finalised";
              tdsetupiscompleted = true;
              if (tdsetupiscompleted)
              {
                  Print = "tdsetupiscompleted";
              }
              if (tdsetupdirection == 1) 
              {
                  Print = "tdsellsetupiscompleted";
              }
              if (tdsetupdirection == -1) 
              {
                  Print = "tdbuysetupiscompleted";
              }
              highesthigh = TDSTHigh;
              lowestlow = TDSTLow;
              truerange = (highesthigh - lowestlow);
              setupstoplevel = SetupStopLevel;
              stateSetup = TDSTStateSetup.Finished;
          }
  // ...
  }
  </code></pre>
  
  <p>I'm trying to publicly access the last 5 lines...</p>