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

C#7中本地函数的惯用命名约定是什么,c#,naming-conventions,c#-7.0,C#,Naming Conventions,C# 7.0,普通的类方法,无论是实例方法还是静态方法,都有一个关于其大小写的惯用命名约定。现在还不清楚是否有一个C#7中引入的公约 是否应在camelCase中命名局部函数 public static int Factorial(int n) { return calcFactorial(n); int calcFactorial(int number) => (number < 2) ? 1 : number * calcFactorial(n

普通的类方法,无论是实例方法还是静态方法,都有一个关于其大小写的惯用命名约定。现在还不清楚是否有一个C#7中引入的公约

是否应在camelCase中命名局部函数

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

    int calcFactorial(int number) => (number < 2)
        ? 1
        : number * calcFactorial(number - 1);
}
public static int Factorial(int n)
{
    return CalcFactorial(n);

    int CalcFactorial(int number) => (number < 2)
        ? 1
        : number * CalcFactorial(number - 1);
}
公共静态整数阶乘(int n)
{
返回CalcFactory(n);
内部计算工厂(内部编号)=>(编号<2)
1.
:编号*计算工厂(编号-1);
}
PascalCase

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

    int calcFactorial(int number) => (number < 2)
        ? 1
        : number * calcFactorial(number - 1);
}
public static int Factorial(int n)
{
    return CalcFactorial(n);

    int CalcFactorial(int number) => (number < 2)
        ? 1
        : number * CalcFactorial(number - 1);
}
公共静态整数阶乘(int n)
{
返回CalcFactory(n);
内部计算工厂(内部编号)=>(编号<2)
1.
:编号*计算工厂(编号-1);
}

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

因此,在您的PascalCase场景中,我会将“Calc”一词拼写如下:

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

    int CalculateFactorial(int number) => (number < 2)
        ? 1
        : number * CalculateFactorial(number - 1);
}
公共静态整数阶乘(int n)
{
返回计算因子(n);
整数计算系数(整数)=>(数<2)
1.
:数字*计算系数(数字-1);
}

编译器已经有了一些进展,为了明确该方法所做的事情而增加的几个字节值得额外的几次击键

我更喜欢双峰驼。不要认为这个问题有一个“正确”的答案。我会坚持函数的命名,因为它是一个函数,只是声明不同而已。声明的位置不会改变类型的基本属性和语义,保持它们在整个代码域中的通用性使事情更容易理解,因此需要维护。C#约定是所有方法和函数的名称都应该在PascalCase中,所以不管它们的可访问性如何,我都会使用标准约定。我不明白,对于任何其他类型,您可以根据声明的位置使用不同的大小写,为什么不针对函数呢?我使用camelCase作为私有函数,所以我考虑在名称前使用下划线,比如_camelCase,因为本地函数有点像“超级私有函数”它们本质上对类的其他部分是私有的。虽然这可能是推荐的,但我个人发现这样命名无助于将它与公共方法区分开来。特别是当您在一些纯文本编辑器(如记事本)中查看源代码时。命名是帮助区分成员的一种方法。使成员名看起来像public会给公共成员带来同样的感觉,这些成员通常很重要(公共api的一种),甚至不应该被重命名。对我来说,所有公共成员都很重要,所有私有成员都可以自由重构。我将它命名为
calcFactorial
,这仍然足够清楚。