title: My C# Private Class is accessible anywhere inside the DLL, then whats the use of internal?
body: <p>I have ClassLibrary project in C# and all my 'private classes' (under different namespace) are accessible to each other inside the same assembly (project).</p>
  
  <pre><code>Class1.cs
  ----------------------------
  namespace MyClass1App
  {
     private class Class1{}
  }
  
  
  Class2.cs
  ----------------------------
  namespace MyClass2App
  {
     private class Class2{}
  }
  </code></pre>
  
  <p>Now Class1() can access and create instance of Class2() class [like... new MyClass2App.Class2() ]. and yes, these classes (Class1() and Class2()) are not accessible outside the assembly. Its the same behavior when these classes are made as 'Internal'. Can someone help me understanding whats the actual use/difference of 'private' and 'internal' access specifiers when applied on class level?</p>
  
  <p>Thanks!</p>