递归内部函数的C#命名约定?

Ric*_*all 8 .net c# recursion naming-conventions

对于常见的方法类型,C#有一些命名约定:

  • BeginFoo()/ EndFoo()用于异步方法
  • TryGet()/ TryParse()返回false而不是抛出异常
  • FooOrDefault()对于返回default(T)而不是抛出异常的方法
  • IsFoo 对于布尔标志

我想知道,有一个递归的内部方法吗?例如,在此示例中来自另一个Stack Overflow问题:

public int CalculateSomethingRecursively(int someNumber)
{
    return doSomethingRecursively(someNumber, 0);
}

// What to call this? 
private int doSomethingRecursively(int someNumber, int level)
{
    if (level >= MAX_LEVEL || !shouldKeepCalculating(someNumber))
        return someNumber;
    return doSomethingRecursively(someNumber, level + 1);
}
Run Code Online (Sandbox Code Playgroud)

在CI中,人们使用foo(...)+ foo_r(...)作为惯例.但是在.NET中怎么样?

Jon*_*eet 8

就个人而言,我可能会把它称之为CalculateSomethingRecursivelyImpl- 我倾向于使用Impl"私有方法"的后缀,该方法实际上完成了具有相同名称但没有后缀的方法的大部分工作.它的递归这一事实不会改变我 - 但它只是个人选择.

说实话,这种方法可能总是私有的 - 所以它几乎和公共/受保护的方法一样重要.与其他团队成员一起制定一个会议.