对于类成员,静态对象,全局对象和结构,您可以有不同的命名约定。其中一些例子如下。
_member
m_member
或在Java情况下,使用this.member
。
但是,当单个变量具有完整的功能范围或寿命短的范围时,是否存在功能变量范围的任何良好技术或命名约定?
void MyFunction()
{
int functionScopeVariable;
if(true)
{
//no need for function variable scope naming convention
}
}
答案 0 :(得分:9)
我实际上鼓励将此任务委派给您使用的IDE /编辑器。
不,我实际上并没有谈论命名变量,这仍然是人类最好的。但是,这种命名策略的基本任务是向您显示任何一个名称所代表的变量类型。
几乎每个值得盐的IDE都可以为不同的变量类型(实例成员,静态成员,参数,局部变量......)定义不同的样式(颜色,字体,字体类型......),这样就让IDE了告诉你它实际上是什么类型的变量,你不必每次都输入那些(否则是无用的)前缀或后缀。
所以我的建议是:使用没有任何前缀或后缀的有意义的名称。
答案 1 :(得分:4)
一种方法是遵循指南,即变量的范围越大,名称越长。通过这种方式,全局变量获得了长描述性名称,而范围有限的东西,如循环索引变量,可以像单个字母一样小。
答案 2 :(得分:3)
我在全局,静态和成员变量上使用前缀或特殊命名约定,因此我不必在本地使用前缀。我更喜欢使用短局部变量名,尤其是循环变量。
答案 3 :(得分:1)
有一个论点是你不应该有'大范围函数'所以命名应该没有问题 - 只需使用'小范围函数'变量命名约定。
答案 4 :(得分:1)
MSFT和私有实例字段的其他样式指南的指导是_memberName
(驼峰案例符号前缀为“_"
”。这也是许多最近Microsoft教程的源代码中使用的约定。
我使用它是因为它更短,而不是匈牙利语,R#支持它作为私有实例字段的默认规则。
我也喜欢它,因为它会掩盖Intellisense中的私有字段,因为您应该首先访问您的公共成员。如果我想访问属性Name并且我开始键入“Na
”,则第一个建议是Pascal-cased公共实例属性Name。在极少数情况下,我想直接访问私有字段,这迫使我有意识地决定开始键入“_
”,然后在Intellisense弹出窗口中获取我的私有字段的完整列表。
我也看到指导它说_MemberName如果它是名为MemberName的公共属性的后备字段(前缀为“_
”的Pascal-case表示法)我个人不喜欢它因为我认为大写M是多余的,增加了不必要的击键,并且没有添加任何额外的信息。
答案 5 :(得分:0)
我们倾向于在“local”的函数中使用l_前缀。而且,这很有效。
答案 6 :(得分:0)
如果存在任何语言的风格指南,那么这一切都归结为。
答案 7 :(得分:0)
我猜任何事都可以,只要它传达了它的使用意义。
答案 8 :(得分:0)
我更喜欢保持简单,我使用:
m_varname - Class member variables
g_varname - Global variables
答案 9 :(得分:0)
我使用与类成员相同的约定。 IDE应该注意查找您的声明。如果一个函数那么庞大且令人困惑,它就会成为一个问题,那么就需要有一个gretaer问题。