title: internal vs public in C#
body: <p>I want to know the difference between the <code>public</code> and <code>internal</code> visibility modifiers.</p>
  <p>When should we use <code>internal</code> on a class and when <code>public</code>? I am confused with when a method should be <code>public</code> or <code>internal</code>.</p>
  <p>I read that <code>internal</code> can be accessed through the assembly, while <code>public</code> can also be used through the assembly. Then where does the difference lie?</p>