对标准标识符命名感到困惑

Coc*_*ilo 4 c# naming-conventions

读一本书,它说这两个是专属的惯例:

  • 不要在标识符中使用下划线
  • 标识符不应以大写字母开头

但在许多地方,我可以看到,特别是在属性方面,作者并没有遵循这一点,例如:

private int x

public int X..

与下划线相同..有时他使用_x和X作为属性.

请问正确的命名约定是什么?

Hen*_*man 6

所有标识符的规则都不相同.并且有多种标准,只要它们被一致地使用,它们都是好的.

我从MS指南中记得的内容:

  • 类(类型)名称和公共成员使用PascalCasing
  • 私有成员,本地变量和参数使用camelCasing

但是驼峰规则仅仅意味着"不大写字母开头的" field,_field,mFieldm_field所有的参赛资格.


Eri*_*ert 6

除了所有其他好的答案之外,我还要补充一点,以两个下划线开头的标识符是一种不好的做法。C# 规范说我们保留使以两个下划线开头的东西具有特殊含义的权利。这是我们的逃生舱口,因此如果我们真的需要,我们可以在不破坏任何人的情况下向语言添加新功能。或者,我们可以使用以两个下划线开头的方法作为专用编译器生成的方法。