C# has a few naming conventions for commonly-seen method types:
BeginFoo()/EndFoo()for async methodsTryGet()/TryParse()that returnfalseinstead of throwing an exceptionFooOrDefault()for methods that returndefault(T)instead of throwing an exceptionIsFoofor boolean flags
I was wondering, is there one for recursive inner methods? e.g. in 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);
}
In C I have seen people use foo(...) + foo_r(...) as a convention. But how about in .NET?
Personally I’d probably call it
CalculateSomethingRecursivelyImpl– I tend to useImplas a suffix for “the private method which actually does the bulk of the work of the method which has the same name but without the suffix.” The fact that it’s recursive wouldn’t change that for me – but it’s only a personal choice.To be honest though, such a method would presumably always be private – so it doesn’t matter nearly as much as for public / protected methods. Just work out a convention with your other team members.