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



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

  • 异步方法BeginFoo()/EndFoo()
  • TryGet()/TryParse()返回false而不是抛出异常
  • FooOrDefault()对于返回default(T)而不是抛出异常的方法
  • IsFoo for boolean flags

我想知道,是否有一个递归内部方法?例如,在这个例子中,来自另一个堆栈溢出问题:

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);
}
在C语言中,我看到人们使用foo(...) + foo_r(...)作为惯例。但是在。net中呢?

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

老实说,这样的方法可能总是私有的——所以它不像公共/受保护的方法那么重要。和你的其他团队成员制定一个约定。

老实说,我想说适用于非递归函数的c#命名约定也适用于递归函数。试着给它起一个描述性但相对简短的名字。如果你真的想不出任何与非递归不同的东西,那么你就必须尝试使用后缀。我更喜欢"Helper",尽管我尽量避免使用后缀。

最新更新