title: C# naming conventions for a recursive inner functions?
body: <p>C# has a few naming conventions for commonly-seen method types:</p>
  
  <ul>
  <li><code>BeginFoo()</code> / <code>EndFoo()</code> for async methods</li>
  <li><code>TryGet()</code> / <code>TryParse()</code> that return <code>false</code> instead of throwing an exception</li>
  <li><code>FooOrDefault()</code> for methods that return <code>default(T)</code> instead of throwing an exception</li>
  <li><code>IsFoo</code> for boolean flags</li>
  </ul>
  
  <p>I was wondering, is there one for <strong>recursive inner methods</strong>? e.g. in <a href="https://stackoverflow.com/questions/610743/using-recursion-in-c-sharp/610788#610788">this example from another Stack Overflow question</a>:</p>
  
  <pre><code>public int CalculateSomethingRecursively(int someNumber)
  {
      return doSomethingRecursively(someNumber, 0);
  }
  
  // What to call this? 
  private int doSomethingRecursively(int someNumber, int level)
  {
      if (level &gt;= MAX_LEVEL || !shouldKeepCalculating(someNumber))
          return someNumber;
      return doSomethingRecursively(someNumber, level + 1);
  }
  </code></pre>
  
  <p>In C I have seen people use <code>foo(...)</code> + <code>foo_r(...)</code> as a convention. But how about in .NET?</p>