C# 7 中局部函数的惯用命名约定是什么

What is the idiomatic naming convention for local functions in C# 7

普通 class 方法,无论是实例方法还是静态方法,都具有关于其大小写的惯用命名约定。目前尚不清楚在 C# 7 中引入的 local functions 约定。

局部函数是否应该以驼峰式命名?

public static int Factorial(int n)
{
    return calcFactorial(n);

    int calcFactorial(int number) => (number < 2)
        ? 1
        : number * calcFactorial(number - 1);
}

PascalCase?

public static int Factorial(int n)
{
    return CalcFactorial(n);

    int CalcFactorial(int number) => (number < 2)
        ? 1
        : number * CalcFactorial(number - 1);
}

我的标准始终是 PascalCase,也拼出完整的单词。我不喜欢缩写,因为它们可以有多种含义。

因此,在您的 PascalCase 场景中,我会将 'Calc' 单词拼写为以下内容:

public static int Factorial(int n)
{
    return CalculateFactorial(n);

    int CalculateFactorial(int number) => (number < 2)
        ? 1
        : number * CalculateFactorial(number - 1);
}

编译器已经取得了进展,一些额外的字节来明确该方法的作用是值得的。

对此没有“正确”答案。

但在我们的团队中,我们使用 _PascalCase() 来实现本地功能。

我们已经将 _xxx 用于私有变量,并且在函数名称前添加下划线使其明显是本地的(就像它是“私有的”)。使用 PascalCase 有助于区分函数和变量。在使用非 Visual Studio 但基本的文本编辑器时也非常方便。

public static int Factorial(int n)
{
    return _CalcFactorial(n);

    int _CalcFactorial(int number) => (number < 2)
        ? 1
        : number * _CalcFactorial(number - 1);
}

P.S。 SO 的语法高亮器不喜欢这样:)