В C # есть несколько соглашений об именах для часто встречающихся типов методов:
BeginFoo ()
/ EndFoo ()
для асинхронных методов TryGet ()
/ TryParse ()
, которые возвращают false
вместо создания исключения FooOrDefault ()
для методов, возвращающих default (T)
вместо выдача исключения IsFoo
для логических флагов Мне было интересно, есть ли исключение для рекурсивных внутренних методов ? например в этот пример из другого вопроса о переполнении стека :
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?