我不知道有谁使用'm_'作为非公开字段的前缀(包括我自己),但我知道应该完成的三个原因:
_
”,但首选“m_
”,因为名称应以字母字符开头。 (这来自Dan Rigsby建议的coding standards)_
”前缀不符合CLI,而“m_
”符合CLI。我的问题是:你是否(是的,你!)能够接受这个作为你正在进行的项目的新标准,考虑到所述原因,或者你是否仍然会因为肆无忌惮的仇恨而失去理智这个想法?
P.S。请不要告诉我“匈牙利语”是不好的,因为这个建议 - 孤立 - 真的与匈牙利没有关系。
答案 0 :(得分:1)
我认识的大多数人(包括我自己)只使用_
作为非公共字段的前缀。键入的时间更短,它使得字段在智能感知中一起出现。我发现它比m_
答案 1 :(得分:0)
这个问题已被多次提出,但再一次,它归结为个人偏好,只要你保持一致,你就不会对这两种方法都有任何问题。
据我所知,大多数C#编码标准都要求没有前缀的小写成员变量名。就个人而言,我不喜欢这种方法,因为你的成员变量倾向于与方法参数冲突,所以你经常要用'this'来限定它们。
我在成员变量的名称之前使用单个下划线,但我确信有很多人不喜欢它。它归结为在整个代码库中保持一致。
答案 2 :(得分:0)
CLS 而不是 CLR 规范坚持认为 public和protected 成员不会因大小写而异。重要的是要注意这样一个事实,除非您计划在跨越多种语言的其他项目中使用它们,否则不需要使您的类型符合CLS。即使这样,如果这是一个内部项目,也可能不需要遵循CLS指南的所有。
在任何情况下,这仅适用于在声明程序集之外可能可见的成员(换句话说,private
和internal
成员可以免除),此建议与非公共领域。
话虽如此,由于我们能够命名变量,因此对命名约定的概念进行了辩论。就个人而言,不,我不喜欢用m_
为变量添加前缀的想法,但这是个人偏好。
答案 3 :(得分:0)
是。重要的是所有程序员都要接受他们正在进行的项目的标准 - 这是一个好的迹象,表明管理层坚持标准,无论个人是否同意。
就我个人而言,我认为以“m_”为前缀是浪费击键,但如果它符合标准,那么这就是我要坚持的。
如果我正在编写标准,我会指定“_”应该用作非公共字段的前缀。