代码之家  ›  专栏  ›  技术社区  ›  Chad

大范围函数变量的良好命名约定是什么?

  •  4
  • Chad  · 技术社区  · 17 年前

    对于类成员、静态对象、全局对象和结构,可以有不同的命名约定。其中一些例子如下。

    _member
    m_member
    

    或者在Java中,使用 this.member .

    但是,当单个变量具有完整的函数范围或较短的生命周期范围时,函数变量范围是否有好的技术或命名约定?

    void MyFunction()
    {
      int functionScopeVariable;
    
      if(true)
      {
        //no need for function variable scope naming convention
      }
    }
    
    10 回复  |  直到 14 年前
        1
  •  9
  •   Joachim Sauer    17 年前

    实际上,我鼓励将此任务委托给您使用的IDE/编辑器。

    几乎每一个值得称道的IDE都可以为不同的变量类型(实例成员、静态成员、参数、局部变量等)定义不同的样式(颜色、字体、字体类型等),因此让IDE告诉您它实际上是什么类型的变量,可以让您无需每次都键入那些(否则毫无用处的)前缀或后缀。

    因此,我的建议是:使用没有任何前缀或后缀的有意义的名称。

        2
  •  4
  •   Greg Hewgill    17 年前

    一种方法是遵循变量范围越大,名称越长的原则。通过这种方式,全局变量可以得到很长的描述性名称,而像循环索引变量这样的范围有限的变量可以小到单个字母。

        3
  •  3
  •   Andrew Queisser    17 年前

        4
  •  1
  •   Jonathan Leffler    17 年前

    有一种观点认为您不应该有“大范围函数”,因此命名不应该有问题——只需使用“小范围函数”变量命名约定即可。

        5
  •  1
  •   Jonathan Leffler    14 年前

    _memberName (驼峰大小写符号,前缀为“ _" )。这也是许多最近的Microsoft教程的源代码中使用的约定。

    我使用它是因为它较短,不是匈牙利语,并且R#支持将其作为私有实例字段的默认规则。

    我也喜欢它,因为它有点模糊了Intellisense的私有字段,这是应该的,因为您应该首先访问您的公共成员。如果我想访问属性名称并开始键入“ Na “第一个建议是Pascal cased public instance属性名称。在少数情况下,我希望直接访问私有字段,这迫使我有意识地决定开始键入” _ “,然后我在Intellisense弹出窗口中获得我的私有字段的完整列表。

    我还看到一些指导说明,如果它是名为MemberName的公共属性的支持字段,则应该是_MemberName(Pascal大小写符号前缀为“ _

        6
  •  0
  •   kafuchau    17 年前

    我们倾向于在函数中使用l_u前缀来表示“local”。而且,这非常有效。

        7
  •  0
  •   erlando    17 年前

        8
  •  0
  •   Nrj    17 年前

    我想任何事情都是好的,只要它传达了它的使用意义。

        9
  •  0
  •   KPexEA    17 年前

    我更喜欢保持简单,我使用:

     m_varname - Class member variables
     g_varname - Global variables
    
        10
  •  0
  •   smp7d    16 年前