Ear*_*rlz 11 variables iterator coding-style naming-conventions
来自C背景我总是用于int i泛型循环变量.当然,在大型嵌套循环或其他复杂的东西中,我可能会使用一个描述性的名称但你更喜欢看哪一个?
int i;
for(i=0;i<Controls.Count;i++){
DoStuff(Controls[i]);
}
Run Code Online (Sandbox Code Playgroud)
要么
int index;
for(index=0;index<Controls.Count;index++){
DoStuff(Controls[index]);
}
Run Code Online (Sandbox Code Playgroud)
在我正在进行的当前项目中,这两种样式和索引都被替换为ndx.
哪一个更好?是i可变太一般?还有其他C风格的名字呢?i, j, k是否所有这些都应该被实际的描述性变量所取代?
在可能的情况下,我赞成描述性名称,因为我们应该努力寻找可读代码.
对于在严格代码块中使用的临时变量,可以接受短变量名称.
但是如果循环或代码块很长,最好有一个更长的描述性变量名称,如果没有其他原因,它将使文本搜索更容易.
如果要执行嵌套循环来访问多维数组元素,则必须使用描述性迭代器名称来创建自我注释代码.例如.,
for(int i=0;i<someMax;i++){
for(int j=0;j<someOtherMax;j++){
DoStuff(someArray[i,j]);
}
}
Run Code Online (Sandbox Code Playgroud)
与
for(int row=0;row<someMax;row++){
for(int column=0;column<someOtherMax;column++){
DoStuff(someArray[row,column]);
}
}
Run Code Online (Sandbox Code Playgroud)