title: Create new instance of private class in another private class
body: <p>Is it possible to create an instance of a private class in another private class? (Not counting within the main() program.)
      And also, is it possible for a method in a private class to return a private type object?</p>
  
  <p>This question came because I was following Scott Allen from PluralSight on C# Fundamentals With C#5. And on lesson 2 about classes and objects, he has a code example like this: </p>
  
  <pre><code>public GradeStatistics ComputeStatistics()
  {
      GradeStatistics stats = new GradeStatistics();
      ...
      ...
  }
  </code></pre>
  
  <p>with GradeStatistics defined in a separate class file like:</p>
  
  <pre><code>class GradeStatisticss
  {
  
  }
  </code></pre>
  
  <p><em>Inlined comment:</em> I am not talking about nested classes. What I meant is, you have two classes (separate files) and I am wondering if one class can create an instance of another class (knowing they are both private).</p>
  
  <pre><code>Edited with examples:
  
      private class Example1
      {
  
      }
  
      private class Example2
  
      {
          public Example1 DoSomeComputation()
          {
              return new Example1();
          }
      }
  
      private class Example3
      {
          Example1 ex1 = new Example1();
      }
  
  Is Example3 able to create ex1? Can Example2 return a new instance of Example1?
  </code></pre>