title: Should I throw on null parameters in private/internal methods?
body: <p>I'm writing a library that has several public classes and methods, as well as several private or internal classes and methods that the library itself uses.</p>
  
  <p>In the public methods I have a null check and a throw like this:</p>
  
  <pre><code>public int DoSomething(int number)
  {
      if (number == null)
      {
          throw new ArgumentNullException(nameof(number));
      }
  }
  </code></pre>
  
  <p>But then this got me thinking, to what level should I be adding parameter null checks to methods? Do I also start adding them to private methods? Should I only do it for public methods?</p>