对于常见的方法类型,C#有一些命名约定:
BeginFoo()
/ EndFoo()
用于异步方法TryGet()
而非抛出异常的TryParse()
/ false
FooOrDefault()
表示返回default(T)
而不是抛出异常的方法IsFoo
表示布尔标志我在想,递归内部方法是否有一个?例如在this example from another Stack Overflow question中:
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中怎么样?
答案 0 :(得分:7)
就我个人而言,我可能会称之为CalculateSomethingRecursivelyImpl
- 我倾向于使用Impl
作为“私有方法”的后缀,该方法实际上完成了具有相同名称的方法的大部分工作没有后缀。“它的递归这一事实不会改变我 - 但它只是个人选择。
说实话,这样的方法可能总是私有的 - 所以它几乎和公共/受保护的方法一样重要。与其他团队成员一起制定一个会议。
答案 1 :(得分:2)
老实说,我会说适用于非递归函数的相同C#命名约定也适用于递归函数。尝试将其命名为描述性但相对较短的内容。如果你真的想不出与非递归不同的东西,那么你将不得不尝试后缀。我更喜欢“Helper”,尽管我尝试避免使用后缀。